templates 相关问题

模板标签用于多种上下文:通用编程(尤其是C ++),以及使用模板引擎生成数据/文档。在实现繁重的问题上使用此标记时 - 标记实现编写的代码语言。

使用引用构造模板类无法编译

我正在构建一个必须能够保存值或引用的模板类。 我正在构建 C++11 兼容性库。 这是该类的相关代码 模板...

回答 1 投票 0

C++成员函数的多个非静态回调

我发现使用下面链接的答案中的代码效果很好,但在我的用例中存在问题。它有效地为非静态成员函数创建了一个“静态包装器”,...

回答 1 投票 0

如何在Django获取请求后在视图控制器中实现渲染

我有以下模板,其中添加了获取请求 函数 openProject(projectId) { fetch(`/分段/测试/`, { 方法:'获取', 标题:{ ...

回答 1 投票 0

如何声明 SFINAE 类?

有些事情对我来说不太顺利。这是声明只接受浮点模板参数的类的方法吗? 模板 有些事情对我来说不太顺利。这是声明一个只接受浮点模板参数的类的方法吗? template <typename T, swift::enable_if<std::is_floating_point<T>::value> = nullptr> class my_float; 我无法在此类之外定义方法。无法编译,不知道为什么 您还可以使用static_assert毒害无效类型。 template <typename T> class my_float { static_assert(std::is_floating_point<T>::value, "T is not a floating point type"); // . . . }; 我认为这更直接一些。 使用其他任何一种方法,例如 template <typename T, bool = std::is_floating_point<T>::value> class my_float; template <typename T> class my_float<T, true> { /* . . . */ }; my_float<int,true> 是一个有效的表达式。我并不是说这是一个不好的方法,但如果你想避免这种情况,你必须封装 my_float<typename,bool> 在另一个模板中,以避免暴露 bool 模板参数。 嗯...不完全是SFINAE...但也许,使用模板专业化?如下? template <typename T, bool = std::is_floating_point<T>::value> class my_float; template <typename T> class my_float<T, true> { // ... }; 如果你真的想使用SFINAE,你可以写 template <typename T, typename = typename std::enable_if<std::is_floating_point<T>::value>::type> class my_float { // ... }; 或者也(观察示例中没有的指针) template <typename T, typename std::enable_if<std::is_floating_point<T>::value>::type * = nullptr> class my_float // ------------------------------------------------^ { }; --编辑-- 按照 Yakk 的建议(谢谢!),您可以混合 SFINAE 和模板专业化,为不同类型的群体开发不同版本的类。 例如以下my_class template <typename T, typename = void> class my_class; template <typename T> class my_class<T, typename std::enable_if<std::is_floating_point<T>::value>::type> { // ... }; template <typename T> class my_class<T, typename std::enable_if<std::is_integral<T>::value>::type> { // ... }; 开发有两个版本(两个不同的部分特化),第一个版本用于浮点类型,第二个版本用于整数类型。并且可以轻松扩展。 确实,这样的东西对我有用(感谢SU3的回答)。 template<typename T, bool B = false> struct enable_if {}; template<typename T> struct enable_if<T, true> { static const bool value = true; }; template<typename T, bool b = enable_if<T,is_allowed<T>::value>::value > class Timer{ void start(); }; template<typename T, bool b> void Timer<T,b>::start() { \* *** \*} 我发布这个答案是因为我不想使用部分专业化,而只想定义外部类的行为。 一个完整的可行示例: typedef std::integral_constant<bool, true> true_type; typedef std::integral_constant<bool, false> false_type; struct Time_unit { }; struct time_unit_seconds : public Time_unit { using type = std::chrono::seconds; }; struct time_unit_micro : public Time_unit { using type = std::chrono::microseconds; }; template<typename T, bool B = false> struct enable_if { }; template<typename T> struct enable_if<T, true> { const static bool value = true; }; template<typename T, bool b = enable_if<T, std::is_base_of<Time_unit, T>::value >::value> struct Timer { int start(); }; template<typename T, bool b> int Timer<T, b>::start() { return 1; } int main() { Timer<time_unit_seconds> t; Timer<time_unit_micro> t2; // Timer<double> t3; does not work ! return 0; }

回答 3 投票 0

自定义日期选择器:如何更改图标图像并单击代码隐藏上的文本框打开弹出窗口?

这是我的自定义日期选择器: 这是我的自定义日期选择器: <customcontrols:CustomDatePicker x:Name="DataCreazione" SelectedDate="{Binding DataCreazione, StringFormat={}{0:dd/MM/yyyy}}" controls:TextBoxHelper.Watermark="Data Creazione" Cursor="Hand" BorderThickness="0" SelectedDateFormat="Short" Margin="0,0,0,0" Grid.ColumnSpan="3" Grid.Row="1" /> 我将此模板应用于后面的代码: using System.Windows; using System.Windows.Controls; using System.Windows.Input; namespace Client.customcontrols { public class CustomDatePicker : DatePicker { public override void OnApplyTemplate() { base.OnApplyTemplate(); if (Template.FindName("PART_TextBox", this) is TextBox textbox) { textbox.IsReadOnly = true; textbox.Cursor = Cursors.Hand; textbox.PreviewMouseLeftButtonDown += PreviewMouseLeftButtonDown_Click; } if (Template.FindName("PART_Button", this) is Button button) { button.Visibility = Visibility.Hidden; } } private void PreviewMouseLeftButtonDown_Click(object sender, System.Windows.Input.MouseButtonEventArgs e) { IsDropDownOpen = true; } } } 我愿意: 而不是隐藏图标,我想更改它的图像(使用PackIconFontAwesome的CalendarAltSolid),大小16x16,边距0,0,8,0 单击文本框后,单击图标具有相同的行为(弹出窗口打开,在我选择日期之前保持打开状态);相反,使用 PreviewMouseLeftButtonDown,它似乎会保持弹出窗口打开,直到我按下鼠标左键单击,一旦其“向上”,弹出窗口就会消失 你能帮我解决这个问题吗? 您始终可以为Button定义自定义模板,例如: <customcontrols:CustomDatePicker x:Name="DataCreazione" SelectedDate="{Binding DataCreazione, StringFormat={}{0:dd/MM/yyyy}}" controls:TextBoxHelper.Watermark="Data Creazione" Cursor="Hand" BorderThickness="0" SelectedDateFormat="Short" Margin="0,0,0,0" Grid.ColumnSpan="3" Grid.Row="1" > <customcontrols:CustomDatePicker.Resources> <ControlTemplate x:Key="ButtonTemplate" TargetType="Button"> <Grid Background="Silver"> <iconPacks:PackIconControl Kind="{x:Static iconPacks:PackIconFontAwesomeKind.CalendarAltSolid}" Width="24" Height="24" /> </Grid> </ControlTemplate> </customcontrols:CustomDatePicker.Resources> </customcontrols:CustomDatePicker> if (Template.FindName("PART_Button", this) is Button button) { button.Template = FindResource("ButtonTemplate") as ControlTemplate; }

回答 1 投票 0

向向量添加 insert_at() 函数

我正在更新一些(很多)旧的 MFC 代码,以用向量替换 CArray。 有一个函数很麻烦,那就是插入函数。现有代码通过数组索引使用 InsertAt() 的地方,

回答 1 投票 0

扩展参数包适用于 msvc,但不适用于 gcc 和 clang

我正在创建一个作为多维跨度的类。它需要一个指向一些连续数据的指针,例如std::vectors 数据,并允许您将其作为多维数组访问。使用时

回答 1 投票 0

采用两个带有可变参数的函数的函数的正确语法是什么?

我的应用程序中有很多异步调用。它们从服务器检索数据并使用检索到的数据执行回调。我想按照以下方式处理它们: 执行函数并参考...

回答 1 投票 0

如何知道类型是否是 std::vector 的特化?

我整个早上都在解决这个问题,但没有任何结果。 基本上,我需要一个简单的元编程,如果传递的参数是...,它允许我分支到不同的专业化。

回答 5 投票 0

用于 CSS 目的的 Django 模板中带有小数部分的十进制数

我有一个 django 模板,我想在其中计算值,然后在 css 中使用它们。看起来像: 顶部填充:{{ VAL1|除:VAL2|乘:VAL3 }}px 它计算出我需要的值,尽管在某些情况下

回答 1 投票 0

如何为 GrapesJS 模板编辑器创建自定义撤消/重做按钮?

我正在使用 GrapesJS 模板编辑器开发一个项目,我正在尝试使用两个按钮实现撤消/重做功能。当然,我创建的按钮目前没有撤消和重做

回答 1 投票 0

Github问题模板验证(必需:true)不起作用

我正在尝试创建一个 Github 问题模板,我想在允许用户提交问题之前验证填写的字段。 我正在使用提交的验证,但 Gthub 似乎没有......

回答 1 投票 0

<Professional C++> 第五,基于chapter12-2-3,我写了chapter 15-2数组,但是报错LNK2019

我这里自定义了一个模板类,想把方法定义和实现放在不同的文件中。我按照之前的模拟,写下来了。为什么这个错误一直存在

回答 1 投票 0

一个简单的身份验证机制drogon

加密是暂时的。 我的所有实例 execSqlAsync 函数都有一个非常不可读的错误。 错误是: 在模板中:二进制表达式的无效操作数('std::stringstream'(又名'

回答 1 投票 0

带有 `const char*` 的模板别名

我想别名/专门化一个以 const char* 作为模板参数的模板: #包括 模板 结构显示器{ void display() 常量...

回答 1 投票 0

如何在 jinja2 中为 ansible 添加列表

下面是我编写的在ansible中使用的jinja2模板。 {% 设置端口 = 1234 %} {% 设置 server_ip = [] %} {% for ip in host_ip %} {% do server_ip.append({{ ip }}:{{ port }}) %} {% 结束 %} {%

回答 7 投票 0

如何在单个概念中对需求进行逻辑“或”?

我有以下案例 模板 概念 has_member = 需要(类 t) { // 只有满足以下任一条件我才能写入? {t.isInterfa...

回答 3 投票 0

将相同的模板写入两个不同的文件,更改一个值

我想将相同的 Ansible 模板写入两个不同的文件,一个将文件中的值设置为 True,另一个将文件中的值设置为 False。 最好的方法是什么?我的直觉...

回答 2 投票 0

Rust:通过泛型专业化将枚举投射到自身

我正在使用泛型专业化在某些枚举数据结构上具有自定义编译时类型: pub 特征 MyEnumState{} // 所有状态都是零大小类型 pub 结构 State1;为 St...实现 MyEnumState

回答 1 投票 0

我可以将几个未指定返回类型的 std::function 放入 C++ 的容器中吗?如果可以,该怎么做?

我想用C++编写一个通用的排序器。我有一些这样的代码。 模板 类排序器{ 民众: 模板 bool RegisterDimValueFetcher(const s...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.