Tag: 模板

C ++ SFINAE的例子?

我想进入更多的模板元编程。 我知道SFINAE代表“替代失败不是一个错误”。 但有人可以给我看SFINAE的好用吗?

C ++和Java中的“通用”types有什么区别?

Java具有generics,C ++通过template提供了一个非常强大的编程模型。 那么,C ++和Javagenerics有什么区别呢?

Backbone.js:重新填充或重新创build视图?

在我的Web应用程序中,我在左侧的表中有一个用户列表,右侧有一个用户详细信息窗格。 当pipe理员点击表格中的用户时,其详细信息应显示在右侧。 我有一个UserListView和UserRowView在左边,UserDetailView在右边。 事情的工作,但我有一个奇怪的行为。 如果我点击左边的一些用户,然后点击删除其中一个,我得到所有已经显示的用户连续的JavaScript确认框。 它看起来像事件绑定的所有以前显示的意见还没有被删除,这似乎是正常的。 我不应该每次在UserRowView上做一个新的UserDetailView? 我应该保持一个观点,并改变其参考模型? 在创build新视图之前,我应该跟踪当前视图并将其删除吗? 我有点失落,任何想法都会受到欢迎。 谢谢 ! 这里是左视图的代码(行显示,点击事件,右视图创build) window.UserRowView = Backbone.View.extend({ tagName : "tr", events : { "click" : "click", }, render : function() { $(this.el).html(ich.bbViewUserTr(this.model.toJSON())); return this; }, click : function() { var view = new UserDetailView({model:this.model}) view.render() } }) 而右视图的代码(删除button) window.UserDetailView = Backbone.View.extend({ el : $("#bbBoxUserDetail"), events : […]

非推断上下文的解决方法

考虑下面的代码: #include <iostream> template<class T> struct outer { struct inner {}; }; template<class T> std::ostream& operator<<(std::ostream & stream, typename outer<T>::inner const& value) { std::cout << "An outer::inner!"; return stream; } int main() { outer<float>::inner foo; std::cout << foo << std::endl; // does not compile } 这不会被编译,因为typename outer<T>::inner是一个非导出的上下文 (如这里所解释的),这意味着模板参数types不能被编译器推导出来(阅读这个答案为什么)。 正如我所看到的,我有两个select使其工作: 移动外部的inner并使其成为类模板。 我更喜欢这个,因为对使用代码的影响较小。 向内部添加一个to_string方法。 有没有其他的解决scheme(这不会导致在使用代码丑陋的语法)?

我怎样才能dynamic地添加一个RowParameters到GridPanelTemplate?

我有一个固定数量的列和未知数量的行的网格。 行数在构造函数中设置一次。 <ItemsControl Name="myItemsControl" ItemsSource="{Binding Cells}"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <Grid Name="myGrid"> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <!– some rows should be added here –> </Grid.RowDefinitions> </Grid> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> <ItemsControl.ItemContainerStyle> <Style…/> </ItemsControl.ItemContainerStyle> </ItemsControl> 我已经尝试了下面这行代码,但是它返回null: object obj = myItemsControl.Template.FindName("myGrid", myItemsControl); 我怎样才能在代码中添加行到“myGrid”?

为每个可变参数和一个数组调用一个函数

所以我有一些typesX : typedef … X; 和一个模板函数f : class <typename T> void f(X& x_out, const T& arg_in); 然后一个函数g : void g(const X* x_array, size_t x_array_size); 我需要写一个variadic模板函数h来做到这一点: template<typename… Args> void h(Args… args) { constexpr size_t nargs = sizeof…(args); // get number of args X x_array[nargs]; // create X array of that size for (int i = 0; […]

在编译时确定types是否是STL容器

我想编写一个模板来确定一个types在编译时是否是一个stl容器。 我有以下一些代码: struct is_cont{}; struct not_cont{}; template <typename T> struct is_cont { typedef not_cont result_t; }; 但我不知道如何为std::vector<T,Alloc>, deque<T,Alloc>, set<T,Alloc,Comp>等创build必要的特化。

如何使用聚合物1.0中的对象而不是数组使用dom-repeat?

迭代数组myarray=[1, 2, 3]工作原理是这样的: <template is="dom-repeat" items="[[myarray]]"> <span>[[item]]</span> </template> 我如何迭代一个对象myobject = {a:1, b:2, c:3} ?

C ++模板多态性

我有这个类的结构。 class Interface{ … } class Foo : public Interface{ … } template <class T> class Container{ … } 我有一些其他类Bar的构造函数。 Bar(const Container<Interface> & bar){ … } 当我这样调用构造函数时,我得到“没有匹配函数”的错误。 Container<Foo> container (); Bar * temp = new Bar(container); 哪里不对? 模板不是多态的吗?

剃刀视图作为电子邮件模板

我正在mvc3中创build一个电子邮件引擎,我正在尝试使用razor视图作为电子邮件模板。 我听说这是可能的,但我还没有find任何有关它的信息。