Questions tagged «templates»

template标记用于多种环境:通用编程(尤其是C ++),以及使用模板引擎生成数据/文档。在实现上有很多疑问时使用此标记-标记实现所使用的代码语言。

10
如何检测类中是否存在特定的成员变量?
为了创建算法模板函数,我需要知道在作为模板参数的类中是x还是X(以及y或Y)。当将我的函数用于MFC CPoint类或GDI + PointF类或其他一些函数时,此方法可能很有用。他们都在其中使用不同的x。我的解决方案可以简化为以下代码: template<int> struct TT {typedef int type;}; template<class P> bool Check_x(P p, typename TT<sizeof(&P::x)>::type b = 0) { return true; } template<class P> bool Check_x(P p, typename TT<sizeof(&P::X)>::type b = 0) { return false; } struct P1 {int x; }; struct P2 {float X; }; // it …


9
模板约束C ++
在C#中,我们可以定义一个通用类型,该通用类型对可用作通用参数的类型施加了约束。以下示例说明了通用约束的用法: interface IFoo { } class Foo<T> where T : IFoo { } class Bar : IFoo { } class Simpson { } class Program { static void Main(string[] args) { Foo<Bar> a = new Foo<Bar>(); Foo<Simpson> b = new Foo<Simpson>(); // error CS0309 } } 有没有一种方法可以对C ++中的模板参数施加约束。 C ++ …


3
派生对基类成员数据的模板类访问
这个问题是一个在问的赞助这个线程。 使用以下类定义: template <class T> class Foo { public: Foo (const foo_arg_t foo_arg) : _foo_arg(foo_arg) { /* do something for foo */ } T Foo_T; // either a TypeA or a TypeB - TBD foo_arg_t _foo_arg; }; template <class T> class Bar : public Foo<T> { public: Bar (const foo_arg_t …

5
C ++静态多态性(CRTP)并使用派生类中的typedef
我阅读了Wikipedia上有关C ++中反复出现的模板模式以实现静态(阅读:编译时)多态性的文章。我想对其进行概括,以便可以基于派生类型更改函数的返回类型。(由于基本类型从template参数知道派生类型,因此这似乎应该可行)。不幸的是,以下代码无法使用MSVC 2010进行编译(我现在无法轻松访问gcc,因此我还没有尝试过)。有人知道为什么吗? template <typename derived_t> class base { public: typedef typename derived_t::value_type value_type; value_type foo() { return static_cast<derived_t*>(this)->foo(); } }; template <typename T> class derived : public base<derived<T> > { public: typedef T value_type; value_type foo() { return T(); //return some T object (assumes T is default constructable) } …

10
如何加快g ++的编译时间(使用大量模板时)
这个问题也许有点奇怪,但是我怎样才能加快g ++的编译时间呢?我的C ++代码大量使用boost和模板。我已经尽可能地将其移出了头文件,并使用了-j选项,但是编译(和链接)仍需要花费相当长的时间。 有没有工具可以分析我的代码并指出编译器的瓶颈?还是可以以某种方式分析运行在我的代码上的编译器?这真的很好,因为有时我会觉得我花了太多时间盯着编译器控制台日志...

4
AngularJS中元素的指令模板唯一ID
我有一个指令,可以在一个页面上多次使用。在此指令的模板中,我需要对输入元素使用ID,以便可以将Label“绑定”到它,如下所示: <input type="checkbox" id="item1" /><label for="item1">open</label> 现在的问题是,一旦多次包含我的指令,ID“ item1”就不再是唯一的,并且标签将无法正常工作(单击时应选中/取消选中该复选框)。 该问题如何解决?有没有一种方法可以为模板分配“名称空间”或“前缀”(例如asp.net使用ctl00 ...- Prefix)?还是我必须在每个id属性中包括一个angular-Expression,它由作用域中的指令ID +一个静态ID组成。就像是: <input type="checkbox" id="{{directiveID}} + 'item1'" /><label for="{{directiveID}} + 'item1'">open</label> 编辑: 我的指令 module.directive('myDirective', function () { return { restrict: 'E', scope: true, templateUrl: 'partials/_myDirective.html', controller: ['$scope', '$element', '$attrs', function ($scope, $element, $attrs) { ... } //controller }; }]); 我的HTML …

3
如何覆盖@ Html.LabelFor模板?
我有一个简单的字段表格 <div class="field fade-label"> @Html.LabelFor(model => model.Register.UserName) @Html.TextBoxFor(model => model.Register.UserName) </div> 结果是: <div class="field fade-label"> <label for="Register_UserName">Username (used to identify all services, from 4 to 30 chars)</label> <input type="text" value="" name="Register.UserName" id="Register_UserName"> </div> 但我希望该LabelFor代码在<span>内部附加一个,这样我最终可以拥有: <label for="Register_UserName"> <span>Username (used to identify all services, from 4 to 30 chars)</span> </label> 我怎样才能做到这一点? 所有示例都使用,EditorTemplates但这是一个LabelFor。

2
为什么在C ++ 20中的依赖类型之前不需要指定“ typename”?
这部分代码在C ++ 20中编译(使用gcc 10.1),而typename在依赖类型之前未使用关键字std::vector<T>::iterator。为什么要编译? #include <vector> template<typename T> std::vector<T>::iterator // Why does this not require "typename" before it? f() { return {}; } int main() { auto fptr = &f<int>; } 代码游乐场


7
Jinja模板是否有惯用的文件扩展名?
我需要以编程方式区分Jinja模板文件,其他模板文件(例如ERB)和无模板纯文本文件。 根据Jinja文档: Jinja模板不需要特定的扩展名:.html,.xml或任何其他扩展名都可以。 但是当需要显式扩展时我应该使用什么?.py会引起误解,围绕Jinja Extensions的讨论会严重搜索搜索包括“ jinja”和“ extension”一词的所有内容。 我可以很容易地规定一个项目范围内的约定(.jnj或者.ja想到),但这是针对开放源代码的,因此,如果某个地方已经建立了惯例,那么我不想逆潮流。 编辑1:同样,我了解Jinja项目(故意)没有定义默认文件扩展名。我要问的是,出于某些项目特定的原因,在某些情况下需要使用非官方的约定。 编辑2:说明:这不适用于HTML内容。

6
专有代码的代码标头
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 改善这个问题 我们需要将一些源代码发送到公司外部,并且我必须在每个文件中添加标头,并注意其中明确指出源代码是我们的财产,并且不允许任何人对其进行任何操作。 您知道我可以使用的任何标头模板吗?

1
什么是非推论上下文?
我最近偶然发现“为什么模板参数推导在这里不起作用? ”,答案可以总结为“这是一个非推论的上下文”。 具体来说,第一个引用这样的东西,然后重定向到“详细信息”的标准,而第二个引用该标准,至少可以这样说。 有人能像我一样向凡人解释一个非推论的上下文是什么,它何时发生,为什么发生?

4
如何在Symfony布局中获取_locale变量?
我正在一个具有2种语言的网站上使用Symfony 2,并且我想根据用户区域设置语言更改路线模式! 例: user_login_en: pattern: /en/user/login.html defaults: { _controller: SfErrorsAppBundle:User:login, _locale: en } user_login_fr: pattern: /fr/utilisateur/connexion.html defaults: { _controller: SfErrorsAppBundle:User:login, _locale: fr} 在模板内部,这并不困难,我只需要将$ this-> get('session')-> getLocale()从控制器传递到模板... 要上班,我必须打电话给我的路线: $router->generate('user_login_'.$locale, array()); 但是在我的布局中,我当然有一个菜单和一个带有链接的侧边栏,所以我想让locale变量使用它!所以我的问题很简单:如何在“布局”模板中获取此变量?否则,您是否有任何想法根据语言更改模式? 原因是我想为所有用户提供漂亮的路线,无论他们是英语还是法语……而且出于搜索引擎优化的原因!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.