小编oco*_*or0的帖子

获取lambda的函数指针?

我希望能够在C++中获得一个指向lambda的函数指针.

我可以:

int (*c)(int) = [](int i) { return i; };
Run Code Online (Sandbox Code Playgroud)

当然,以下工作 - 即使它没有创建函数指针.

auto a = [](int i) { return i; };
Run Code Online (Sandbox Code Playgroud)

但是以下内容:

auto *b = [](int i) { return i; };
Run Code Online (Sandbox Code Playgroud)

在GCC中给出了这个错误:

main.cpp: In function 'int main()':
main.cpp:13:37: error: unable to deduce 'auto*' from '<lambda closure object>main()::<lambda(int)>{}'
     auto *b = [](int i) { return i; };
                                      ^
main.cpp:13:37: note:   mismatched types 'auto*' and 'main()::<lambda(int)>'
Run Code Online (Sandbox Code Playgroud)

似乎任意一个lambda可以毫无问题地转换为函数指针,但是编译器无法推断函数类型并使用它来创建指向它的指针auto *.特别是当它可以隐式转换unique, lambda type为函数指针时:

int (*g)(int) = a;
Run Code Online (Sandbox Code Playgroud)

我在http://coliru.stacked-crooked.com/a/2cbd62c8179dc61b …

c++ lambda c++11 c++14

36
推荐指数
3
解决办法
7358
查看次数

git svn克隆SVN存储库的单个目录

我试图用来将git svnSVN存储库的单个目录克隆到Git存储库中.

如果我使用git svn clone svn+ssh://path/to/repo/trunk/directory,我得到一个没有分支的Git仓库,它反映了源SVN仓库中的分支.

如果我使用git svn --stdlayout svn+ssh://path/to/repo/trunk/directory,我得到一个空的Git回购.以下是命令的输出:

Initialized empty Git repository in /directory/.git/
Using higher level of URL: svn+ssh://path/to/repo/trunk/directory => svn+ssh://path/to/repo
W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no item: File not found: revision 100, path '/trunk/directory'
W: Do not be alarmed at the above message git-svn is just searching aggressively for old history.
This may take a while on large repositories
Run Code Online (Sandbox Code Playgroud)

我已经读过,解决上述问题的方法是添加一个修订范围-r 1000:HEAD …

svn git version-control git-svn

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

为什么Java原始类型的'修饰符'public`,`abstract`和`final`?

在对Java类型进行一些反思的过程中,我遇到了一个我不理解的奇怪现象.

检查int其修饰的回报public,abstract和final.我理解public并且final,但对于我来说,abstract原始类型的存在是不明显的.为什么会这样?

编辑:我没有反思,Integer但在int:

import java.lang.reflect.Modifier;

public class IntegerReflection {
    public static void main(final String[] args) {
        System.out.println(String.format("int.class == Integer.class -> %b", int.class == Integer.class));
        System.out.println(String.format("int.class modifiers: %s", Modifier.toString(int.class.getModifiers())));
        System.out.println(String.format("Integer.class modifiers: %s", Modifier.toString(Integer.class.getModifiers())));
    }
}
Run Code Online (Sandbox Code Playgroud)

运行时的输出:

int.class == Integer.class -> false
int.class modifiers: public abstract final
Integer.class modifiers: public final
Run Code Online (Sandbox Code Playgroud)

java reflection

19
推荐指数
2
解决办法
1980
查看次数

一起使用xs:extension&xs:restriction?

在编写XML模式时,我试图做这样的事情

<xs:complexType name="ValueWithUnits">
    <xs:simpleContent>
        <xs:extension base="xs:double">
            <xs:attribute name="uom" fixed="second"/>
            <xs:minInclusive="0"/>
            <xs:maxInclusive="10"/>
        </xs:extension>
    </xs:simpleContent>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)

不幸的是,在xs:extension上允许使用xs:属性,而在xs:restriction上允许xs:minInclusive和xs:maxInclusive,但不能在一起.

构建这个的最佳方法是什么?我是否必须使用适当的单位定义扩展名,然后使用我的最小值和最大值限制它?

xml schema xsd

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

在不下载WSDL的情况下实例化JAX-WS服务?

我有一个Web服务,我有JAX-WS生成的客户端绑定,如下所示:

// web service client generated by JAX-WS
@WebServiceClient( ... )
public class WebService_Service extends Service {

    public WebService_Service(URL wsdlLocation, QName serviceName) {
        super(wsdlLocation, serviceName);
    }

    WebService getWebServiceSOAP() {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望能够创建一个指向远程服务的实例,例如:

WebService_Service svc = new WebService_Service(
    new URL("http://www.example.com/ws?wsdl"),
    new QName("http://www.example.com/ws", "WebService"));
Run Code Online (Sandbox Code Playgroud)

但是下载了http://www.example.com/ws?wsdl我不想做的WSDL .

有没有办法停止下载该WSDL,但仍然指向同一个端点?

java wsdl web-services jax-ws

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

是否有最近的关键地图数据结构?

我有一种情况,我需要找到最接近我请求的键的值.它有点像最近的地图,它定义了键之间的距离.

例如,如果我在地图中有键{A,C,M,Z},则对D的请求将返回C的值.

任何的想法?

algorithm data-structures

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

OSGi声明服务与ManagedService配置服务?

我最近偶然发现,OSGi中的Declarative Services可以将组件的配置设置为必需,以便组件在激活时接收它,消除组件激活和配置之间的差距.我也意识到你可以通过modified-method 接收配置更新.

在我看来,这个功能非常类似于通过实现ManagedService接口和发布作为您提供的"服务"之一提供的功能.

看起来我可以完全忽略ManagedService并只使用DS配置注入.

这些技术中的一种比其他技术更受欢迎,还是还有其他我没有看到的权衡取舍?

configuration osgi declarative-services

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

C++ 11中用户定义的属性?

有没有办法在C++ 11或更高版本中创建用户定义的属性?

例如,

[[noreturn]] void exit();
Run Code Online (Sandbox Code Playgroud)

是编译器定义的C++ 11属性.

我想定义类似的东西:

[[comingsoon]] int function(int);
Run Code Online (Sandbox Code Playgroud)

这有机制吗?

编辑:我应该提到我正在使用Clang.

c++ attributes c++11 clang++

9
推荐指数
2
解决办法
4519
查看次数

有没有办法让Verilog模块的名称被实例化?

我想在Verilog中进行一些模拟调试,并希望添加$display到某些模块,但希望能够跟踪单个模块提供的输出.我希望能够获得当前模块实例化的名称以添加到$display.

例如:

module adder (...)
    ...
    $display($magic_instance_name, " ", in0, " + ", in1);
    ...

adder memory_address (...);
adder fifo_nvals (...);
Run Code Online (Sandbox Code Playgroud)

然后输出看起来像:

memory_address 100 + 8
fifo_nvals 3 + 1
...
Run Code Online (Sandbox Code Playgroud)

我可以这样做的一种方法是instance_name为每个模块添加一个参数.有没有更简单的方法?

verilog

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

如何将数组索引添加到JAXB生成的XML中?

我有一个Java bean ala

@XmlRootElement public class Bean {
    @XmlElementWrapper(name = "ints") @XmlElement(name = "int")
    int[] values;

    // constructors, getters, setters, etc...
}
Run Code Online (Sandbox Code Playgroud)

JAXB正在生成XML

<bean>
    <ints>
        <int>12</int>
        <int>34</int>
        <int>56</int>
    </ints>
</bean>
Run Code Online (Sandbox Code Playgroud)

我希望数组索引包含在<int>标记中,因为数组位置传达了重要的值.优选地作为属性

<bean>
    <ints>
        <int id='0'>12</int>
        <int id='1'>34</int>
        <int id='2'>56</int>
    </ints>
</bean>
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

java jaxb

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