小编Dew*_*wfy的帖子

std :: tuple,按继承类型获取项目

在c ++ 11中,我有一个非常整洁和工作的代码,用于std::tuple逐个类型地提取项目(我知道这个功能甚至可以放到 c ++ 14 stl)

现在我面临着通过继承的类规范选择项目的任务

 struct A
 {
     int a;
 };
 struct B : public A
 {
     int b;
 };

 ...
 auto tval = std::make_tuple(1, B());
 //now I would like to reference items as following:
 tuple_ref_by_inheritance<A>(tval).a = 5; //Access to B instance by parent A
Run Code Online (Sandbox Code Playgroud)

以下代码是我不成功的尝试:

    template< class T, class Tuple >
    struct tuple_ref_index;

    // recursive case
    template<class T, class Head, class... Tail >
    struct tuple_ref_index<T, std::tuple<Head, Tail...> >  
    { 
        enum { …
Run Code Online (Sandbox Code Playgroud)

c++ tuples template-meta-programming c++11

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

捆绑第三方库以便在Python 3中分发的最佳实践

我正在使用Python开发应用程序3.使用第三方库进行开发过程和最终用户分发的最佳实践是什么?请注意,我正在这些约束中工作:

  • 团队中的开发人员应该具有完全相同的库版本.
  • 理想的解决方案适用于Windows和Linux.
  • 我想在使用我们自己的软件之前避免让用户安装软件; 也就是说,在使用我们的产品之前,他们不应该安装产品A和产品B.

dependencies software-distribution python-3.x

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

使用 CTest/CMake 时在 VS2019 测试资源管理器中指定命名空间/类

我正在使用 CMake + VS2019。在我的测试定义中,我有类似的东西:

add_test(NAME "common/base64" COMMAND my_unit_test "common/base64")
Run Code Online (Sandbox Code Playgroud)

VS2019 显示如下:

在此处输入图片说明

在项目中我有数百个测试,搜索不清楚的随机生成的名称,扩展每个项目非常不方便。所以我的问题:

  • 如何指定可识别的测试名称(而不是 EBF.Tests.52488745200006951440)?
  • 如何指定命名空间/类?

我也可以看到 Vs2019 测试资源管理器可以按“特征”分组 - 我可以在这个功能上指定它吗?

cmake visual-studio-2019

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

java部分类

小序言.我是1.4 jdk的优秀java开发人员.在它之后,我已经切换到另一个平台,但在这里我遇到了问题所以问题强烈关于jdk 1.6(或更高:)).我有3个耦合类,与本机方法有关的耦合性质.贝娄是这三班的榜样

public interface A
{
     public void method();
}
final class AOperations
{
     static native method(. . .);
}
public class AImpl implements A
{
    @Override
    public void method(){ 
        AOperations.method( . . . );
    }
}
Run Code Online (Sandbox Code Playgroud)

所以有接口A,由AOperations以本机方式实现,而AImpl只是将方法调用委托给本机方法.这些关系是自动生成的.一切都好,但我有问题.有时像A这样的接口需要暴露迭代器功能.我可以影响接口,但不能改变实现(AImpl).

在C#中说我可以通过简单的部分来解决问题:(C#sample)

partial class AImpl{
 ... //here comes auto generated code
} 

partial class AImpl{
 ... //here comes MY implementation of 
 ... //Iterator 
} 
Run Code Online (Sandbox Code Playgroud)

所以,有部分或类似的java模拟.

编辑:根据@pgras的评论,我需要一些澄清.AImpl不在真空中,有一些工厂(本机实现)返回AImpl的实例,这就是为什么从AImpl创建继承不适用.

编辑2:可能它没有关系,但它是如何由JUnit 4完成的:

public class SomeTest {
 ...
 //there is no direct inheritance from Assert, …
Run Code Online (Sandbox Code Playgroud)

java language-features code-generation

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

创建boost-python嵌套命名空间

使用boost python我需要创建嵌套的命名空间.

假设我有以下cpp类结构:

namespace a
{
    class A{...}
    namespace b
    {
         class B{...}
    }
}
Run Code Online (Sandbox Code Playgroud)

明显的解决方案不起作用:

BOOST_PYTHON_MODULE( a ) {
    boost::python::class_<a::A>("A")
     ...
    ;
    BOOST_PYTHON_MODULE(b){
        boost::python::class_<a::b::B>("B")
        ...
    ;
    }
}
Run Code Online (Sandbox Code Playgroud)

它会导致编译时错误: linkage specification must be at global scope

有没有办法声明可以从Python访问的B类a.b.B

python boost boost-python

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

Kurento WebRTC没有录音

我正在尝试使用带有nodejs的Kurento媒体服务器录制视频.我一直在这里运行你好世界的例子.我将一个recorderEndpoint连接到webrtcEndpoint并且能够使整个事情运行但我在服务器上收到此错误消息:

0:37:59.122469563 7003 0xaf5500错误KurentoMediaPipelineImpl /build/buildd/kms-core-5.0.3/src/server/implementation/objects/MediaPipelineImpl.cpp:32:busMessage:总线错误:错误消息:0x7f11c0330ea0,时间99: 99:99.999999999,seq-num 514729,元素'kmsrecorderendpoint10',GstMessageError,gerror =(GError)NULL,debug =(string)"/ build/buildd/kms-elements-5.0.3/src/gst-plugins/kmsrecorderendpoint. c(876):\ sink_required_cb \():\/GstPipeline:pipeline8/KmsRecorderEndpoint:kmsrecorderendpoint10";

我不认为它的录音是正确的,但我不确定是什么问题.我能够运行原始示例,因此服务器很好.

代码在这里:

https://gist.github.com/poliu2s/2cd3fc2a5dc929062481

javascript node.js webrtc kurento

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

记录类属性

以下示例摘自"Dive into python"一书.

class MP3FileInfo(FileInfo):
    "store ID3v1.0 MP3 tags"
    tagDataMap = ...
Run Code Online (Sandbox Code Playgroud)

此示例显示记录MP3FileInfo,但如何向MP3FileInfo添加帮助.tagDataMap

python attributes class self-documenting

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

使用hibernate解析SQL方言

我负责将现有项目从Oracle移植到MSSQL,但同时保持功能.旧项目使用Hibernate 3.x,但包含一些复杂的本机查询.所以我想知道使用哪种方言.

hibernate

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

c ++ 11可变参数args,带有函数默认参数值

我有包装器调用模板函数N次:

template <std::uint16_t N, typename F, typename  ... Args>
inline typename std::result_of<F && (Args &&...)>::type retry_n(F && f, Args&& ... ax)
{
    for (auto i = 0; i < N; ++i)
    {
        try
        {
            return std::forward<F>(f)(std::forward<Args>(ax)...);
        }
        catch (const some_except &e){ /*ignore exception for a while*/ }
    }
    throw;//re-raise
}
Run Code Online (Sandbox Code Playgroud)

一切正常,直到我使用默认参数传递函数:

int f(int a, int b, int c = 5);
.... 
retry_n<10>(f, 1, 2); // error C2198: 'bla-bla' : too few arguments for call
Run Code Online (Sandbox Code Playgroud)

如何在没有明确规范的情况下使用默认参数?

variadic-templates c++11

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

连接到 HDInsight (Azure) 上安装的 Kafka

我需要从外部 java 应用程序连接到作为 Azure 上 HDinsight 的一部分启动的 Kafka 集群。我的集群包含 3 个代理实例、3 个 ZooKeeper 和 1 个 ZooKeeper 客户端。

现在我的问题:如何指定代理连接字符串。在管理面板上,我可以看到 3 个经纪人,例如:xxx-1.yyy.zzz.internal.cloudapp.net, xxx-2.yyy.zzz.internal.cloudapp.net- 但这些地址无法从外部获得。如果我尝试一下,我可以看到异常:

KafkaException:构建kafka消费者失败

...

ConfigException:bootstrap.servers 中的 URL 无效:xxx-1.yyy.zzz.internal.cloudapp.net

java azure apache-kafka azure-hdinsight

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