小编Muh*_*eed的帖子

用于创建类实例的C++语法

我一直在研究如何在C++中创建一个类的实例.似乎有几种方法可以做到这一点:

ClassExample classExample1;
ClassExample classExample2();
ClassExample classExample3(void);
ClassExample classExample4 = ClassExample();
Run Code Online (Sandbox Code Playgroud)

1和4调用默认构造函数.当我使用2和3时,我似乎无法引用变量并且它们未初始化.在调试器中,它们被逐步调整.为什么是这样?这些都一样吗?有什么不同?有首选吗?

当我们有参数传递时,有两种方法可以做到这一点:

ClassExample classExample1(true, 1, "");
ClassExample classExample2 = ClassExample(true, 1, "");
Run Code Online (Sandbox Code Playgroud)

再说一次,有区别吗?什么是首选方案?

UPDATE

C++ 11还引入了这种初始化形式:

ClassExample classExample2{ };
Run Code Online (Sandbox Code Playgroud)

这是以下的平等:

ClassExample classExample2();
Run Code Online (Sandbox Code Playgroud)

c++ class instance c++11

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

如何使用Puppet需要另一个自定义类

如果我在自己的木偶模块中有两个类,而'b'类依赖于类'a'.我怎样才能在require声明中表达这一点:

# a.pp
class rehan::a {
    package { 'javaruntime':
        ensure   => latest,
        provider => chocolatey
    }
}

# b.pp
class rehan::b {
    file { 'C:\foo':
        ensure  => present,
        require => Package['?????']
    }
}

# site.pp
node default {
    include rehan::a
    include rehan::b
}
Run Code Online (Sandbox Code Playgroud)

puppet

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

分支ASP.NET核心管道身份验证

我的应用程序当前正在使用基本身份验证,但我想转换到OAuth,因此需要短时间内需要使用这两种类型的身份验证.有没有办法像我这样分支我的ASP.NET核心管道:

public void Configure(IApplicationBuilder application)
{
    application
        .Use((context, next) =>
        {
            if (context.Request.Headers.ContainsKey("Basic"))
            {
                // Basic
            }
            else if (context.Request.Headers.ContainsKey("Authorization"))
            {
                // OAuth
            }

            return next();
        })
        .UseStaticFiles()
        .UseMvc();
}
Run Code Online (Sandbox Code Playgroud)

如上所述,如果我检测到HTTP标头,则使用基本身份验证,否则我使用OAuth.

asp.net owin-middleware asp.net-core-mvc asp.net-core

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

D3弧形与雪佛龙形端

我使用D3.js 绘制了弧线,默认情况下它具有方形末端.

var arc = d3.arc()
    .innerRadius(0)
    .outerRadius(100)
    .startAngle(0)
    .endAngle(Math.PI);
d3.selectAll('svg')
    .append('path')
    .attr('d', function() {
        return arc();
    });
Run Code Online (Sandbox Code Playgroud)

如何在其一端绘制带有V形的弧形.

雪佛龙造型

javascript svg shapes d3.js svg-path

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

如何使用 JSON.NET 进行序列化并忽略可空结构值

我正在尝试使用带有自定义JsonConverter. 我希望null在 JSON 输出中忽略/省略一个值,例如我希望下面的 JSON 输出{}不是{"Number":null}. 如何做到这一点?这是我试图实现的单元测试的最小再现。

[Fact]
public void UnitTest()
{
    int? number = null;
    var json = JsonConvert.SerializeObject(
        new Entity { Number = new HasValue<int?>(number) },
        new JsonSerializerSettings()
        { 
            DefaultValueHandling = DefaultValueHandling.Ignore,
            NullValueHandling = NullValueHandling.Ignore
        });

    Assert.Equal("{}", json); // Fails because json = {"Number":null}
}

public class Entity
{
    [JsonConverter(typeof(NullJsonConverter))]
    public HasValue<int?>? Number { get; set; }
}

public struct HasValue<T>
{
    public HasValue(T value) => this.Value = value;
    public …
Run Code Online (Sandbox Code Playgroud)

.net c# json json.net jsonconverter

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

Vue 3 Teleport for Vue 2

在 Vue 3 中,可以像这样将组件传送body标签:

<template>
  <button @click="modalOpen = true">
    Open full screen modal! (With teleport!)
  </button>
    
  <teleport to="body">
    <div v-if="modalOpen" class="modal">
      <div>
        I'm a teleported modal! 
        (My parent is "body")
        <button @click="modalOpen = false">
          Close
        </button>
      </div>
    </div>
  </teleport>
</template>

<script>
export default {
  data() {
    return { 
      modalOpen: false
    }
  }
};
</script>
Run Code Online (Sandbox Code Playgroud)

这会导致上面的模态对话在body标签中呈现。如何在 Vue 2 中实现类似的功能?

javascript vue.js vuejs2 vuejs3 vue-teleport

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

共享MEF部件/导出模块之间的可重用性

我正在写一个WPF MEF应用程序.在过去,我已经编写了基于WPF IoC的应用程序,并使用PRISM构建代码模块,如下所示:

  • Shell - 主要可执行文件
  • BusinessArea.Module.Interface - 包含BusinessArea模块的Services,ViewModel和Views的所有接口.
  • BusinessArea.Module - 包含PRISM IModule的实现,并实现BusinessArea.Module.Interface项目中的接口.
  • OtherBusinessArea.Module.Interface - 另一个模块
  • OtherBusinessArea.Module - 另一个模块接口

在IoC领域,每个模块在加载时都会使用IoC容器注册其组件.如果我希望我的两个模块能够重用彼此的组件,他们只需要引用我的一个接口项目并注入组件.

但是在MEF中,我无法找到任何将部件分离到模块中以及这种类型的模块间组件重用的良好实践或指南.我有五个问题:

  1. 我应该继续为我的所有部件创建接口吗?
  2. 我应该在整个应用程序中有一个共享容器,还是每个模块有一个共享容器(每个模块都是从Windows 8样式的开始菜单启动的单独应用程序).
  3. 如果一个模块想要使用另一个模块中的一个部件,我该如何保持分离.
  4. 如果一个模块想要在另一个容器中使用一个部件,我该如何保持分离.
  5. 如何在具有大量模块的应用程序中最好地保持性能.

modularity mef ioc-container inversion-of-control unity-container

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

ASP.NET MVC会话状态超时

鉴于会话状态在ASP.NET MVC中推荐.我试图理解在什么情况下使用会话.我知道使用TempData会创建一个会话,但是还有其他什么情况,我是如何配置会话状态超时以获得更好的安全性的?

<sessionState cookieName="s" timeout="20" />
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc session session-state

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

如何从 .NET 中的 CultureInfo 获取 ISO 3166 国家/地区代码

给定一个CultureInfo对象,如何获取两个字符的 ISO 3166 国家/地区代码?例如en-US,来自,我想要US和来自en-GB,我想要GB。我还需要处理文化可能没有国家/地区代码的情况。

.net culture cultureinfo iso-3166 .net-core

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

C++ Move Semantics vs Copy Constructor和Assignment Operator与Smart Pointers相关

我试图找出何时使用移动语义以及何时使用复制构造函数和赋值运算符作为经验法则.你的类中使用的指针类型(如果有的话)似乎受到这个答案的影响,所以我已经包含了这个.

没有指针 - 基于这个答案,如果你有一个包含int和string等基本类型的POD类,则不需要编写自定义移动或复制构造函数和运算符.

unique-ptr - 基于这个答案,当使用移动语义时,unique_ptr比shared_ptr更合适,因为资源只能有一个unique_ptr.

shared_ptr - 同样,如果使用复制语义,shared_ptr似乎还有很长的路要走.可以有多个对象副本,因此拥有一个指向资源的共享指针对我来说很有意义.但是,unique_ptr通常优先于shared_ptr,因此如果可以,请避免使用此选项.

但:

  1. 我什么时候应该使用移动语义?
  2. 我什么时候应该使用复制语义?
  3. 我应该同时使用两者吗?
  4. 我应该使用none并依赖默认的复制构造函数和赋值运算符吗?

c++ pointers smart-pointers move-semantics c++11

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