标签: default

C++ 可以从默认值推导出参数类型吗?

我尝试使用默认模板参数编写此函数:

template<typename A, typename B>
void func(int i1, int i2, A a, B b = 123){
    ...
}
Run Code Online (Sandbox Code Playgroud)

在我看来,我可以这样称呼它:func(1, 2, 3)编译器应该从默认值推断出类型Bint但我得到了no instance of overloaded function
在这种情况下,C++ 构造是否不正确并且编译器无法推断出类型?

c++ templates default default-arguments template-argument-deduction

30
推荐指数
2
解决办法
2643
查看次数

WPF按钮textwrap样式

如何在WPF中更改按钮的默认文本换行样式?

显而易见的解决方案:

<Style x:Key="MyButtonStyle" TargetType="{x:Type Button}">
    <Setter Property="TextWrapping" Value="Wrap"></Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

不起作用,因为Textwrapping显然不是一个可设置的属性.

如果我尝试:

<Style x:Key="MyButtonStyle" TargetType="{x:Type Button}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Button}">
                <TextBlock Text="{Binding}" Foreground="White" FontSize="20" FontFamily="Global User Interface" TextWrapping="Wrap"/>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

我只是从编译器得到一个毫无价值的回应:

Error   5   After a 'SetterBaseCollection' is in use (sealed), it cannot be modified.   
Run Code Online (Sandbox Code Playgroud)

删除ControlTemplate标记可以保留错误.

以下尝试会产生不同的错误:

    <Setter Property="TextBlock">
        <TextBlock Text="{Binding}" Foreground="White" FontSize="20" FontFamily="Global User Interface" TextWrapping="Wrap"/>
    </Setter>

Error   5   The type 'Setter' does not support direct content.  
Run Code Online (Sandbox Code Playgroud)

我看到我可以单独为每个按钮设置textwrapping,但这很漂亮.我该怎么做才能成为一种风格?有什么神奇的话语?

为了将来参考,我在哪里可以找到这些神奇单词的列表,所以我可以自己做这个?当我试图找出setter可以设置哪些属性时,MSDN条目是没用的.

wpf styles default button word-wrap

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

WPF:将画笔恢复为默认/原始

我是WPF的新手.

目前我正在为名为"LabeledTextbox"的表单元素进行usercontrol,其中包含标签,文本框和错误消息的文本块.

当使用代码添加错误消息时,我想将文本框的边框设置为红色.但是,当错误消息被删除时,我想回到文本框的默认边框颜色.我觉得必须有一个非常简单的方法来做到这一点.

我的代码:

(在公共部分类LabeledTextbox:UserControl中)

public string ErrorMessage
{
    set
    {
        if (string.IsNullOrEmpty(value))
        {
            _textbox.BorderBrush = Brushes.Black; //How do I revert to the original color in the most elegant way?
        }
        else
        {
            _textbox.BorderBrush = Brushes.Red;
        }

        _errorMessage.Text = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

wpf user-controls default

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

stl vector和c ++:如何在没有默认构造函数的情况下使用.resize?

如何告诉STL,特别是resize()vector中的方法,用默认的构造函数初始化对象,以及使用哪些参数?

例如:

class something {
    int a;
    something (int value);
}

std::vector<something> many_things;

many_things.resize (20);
Run Code Online (Sandbox Code Playgroud)

更一般地说,当需要创建对象并将参数传递给该构造函数时,如何强制STL使用我的构造函数?

在我的情况下,添加默认构造函数不是一个选项,我宁愿不使用指针数组来解决问题.

c++ constructor stl default vector

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

如何在搜索栏上显示某些值作为默认值?

我有一个搜索栏例如:从0到10.如果我想将搜索栏设置为5作为默认位置,我该怎么做.所以在这个例子中,seekbar应该从中间开始.

android default seekbar

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

WPF ControlTemplate:如何为TemplateBinding提供默认值?

我正在编写一个WPF控件,它是Button的子类.然后我在Themes\generic.xaml中提供了一个默认样式,它看起来像这样(简化):

<Style TargetType="{x:Type WPFControls:MyButton}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type WPFControls:MyButton}">
                <Button 
                    x:Name="PART_Button"
                    Background="{TemplateBinding Background}"
                    BorderBrush="{TemplateBinding BorderBrush}"
                    />
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

我希望用户有机会更改控件的背景,但如果他没有,我想提供默认值.我该怎么做?

当我在发布的代码中执行它时,Background和BorderBrush为null(=不存在),除非用户明确指定它们(这有效地强制用户总是提供一些值),但标准的Windows控件(如Button)提供了默认的外观,仍然可以由用户定制.如何在我的控制下做到这一点?

谢谢!

Michael Morton解决方案:

您可以在样式中提供默认设置:

<Style TargetType="{x:Type TestTemplate:MyButton}">
    <Setter Property="Background" Value="Red" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type TestTemplate:MyButton}">
                <Button 
                    x:Name="PART_Button"
                    IsEnabled="{TemplateBinding IsEnabled}"
                    Content="{TemplateBinding Content}"
                    Background="{TemplateBinding Background}"
                    />
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

用法:

<StackPanel>
    <TestTemplate:MyButton Background="Blue">Explicitly blue</TestTemplate:MyButton>
    <TestTemplate:MyButton>Naturally red</TestTemplate:MyButton>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

wpf styles default controltemplate templatebinding

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

为什么C++默认析构函数不会破坏我的对象?

C++规范说默认析构函数删除所有非静态成员.然而,我无法实现这一目标.

我有这个:

class N {
public:
    ~N() {
        std::cout << "Destroying object of type N";
    }
};

class M {
public:
    M() {
        n = new N;
    }
//  ~M() { //this should happen by default
//      delete n;
//  }
private:
    N* n;
};
Run Code Online (Sandbox Code Playgroud)

然后这应该打印给定的消息,但它不会:

M* m = new M();
delete m; //this should invoke the default destructor
Run Code Online (Sandbox Code Playgroud)

c++ destructor default

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

Gravatar:有默认图片吗?

我已经为我正在构建的门户网站实现了gravatar,并想知道是否有gravatar的默认图片网址?并非所有访问该网站的人都已登录或拥有电子邮件地址,在这种情况下,是否有可以显示的默认图像(可通过gravatar url访问)

default gravatar image

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

更改Pycharm Project的默认位置

我在Ubuntu 14.04上使用PyCharm 3.4.1.对于新项目,它建议~/PyCharmProjects存储项目文件夹.是否可以更改此建议文件夹的位置和名称?

(我在界面,JetBrains网站或设置文件中找不到任何更改它的参考.要么是不可能的,要么(我希望)我错过了什么.)

注意,它不是重复我可以更改PyCharmProjects的位置/名称吗? - 我知道可以为每个创建的项目更改建议的路径 - 但我想要我喜欢的默认值.

default pycharm

28
推荐指数
4
解决办法
3万
查看次数

更改stringsAsFactors data.frame的设置

我有一个函数,我在其中定义一个data.frame我使用循环来填充数据.在某些时候,我收到警告消息:

警告消息:1:In [<-.factor(*tmp*,iseq,value ="CHANGE"):生成的因子级别无效

因此,当我定义我的data.frame时,我想将选项设置stringsAsFactorsFALSE但我不明白该怎么做.

我试过了:

DataFrame = data.frame(stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)

并且:

options(stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)

设置stringsAsFactors选项的正确方法是什么?

default r options dataframe r-factor

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