Tag: 模板

在运行时获取模板元编程时间常量

背景 考虑以下: template <unsigned N> struct Fibonacci { enum { value = Fibonacci<N-1>::value + Fibonacci<N-2>::value }; }; template <> struct Fibonacci<1> { enum { value = 1 }; }; template <> struct Fibonacci<0> { enum { value = 0 }; }; 这是一个常见的例子,我们可以将斐波那契数的值作为编译时常量: int main(void) { std::cout << "Fibonacci(15) = "; std::cout << Fibonacci<15>::value; std::cout << […]

将函数模板中的静态局部variables的地址用作types标识符是否安全?

我希望创build一个替代std::type_index不需要RTTI : template <typename T> int* type_id() { static int x; return &x; } 请注意,局部variablesx的地址被用作typesID,而不是x本身的值。 另外,我不打算在现实中使用裸指针。 我刚刚清除了与我的问题无关的所有内容。 看到我的实际type_index实施在这里 。 这种方法是否合理?如果是这样,为什么? 如果没有,为什么不呢? 我觉得我在这里摇摇欲坠,所以我对我的方法为什么会起作用或不起作用的确切原因感兴趣。 一个典型的用例可能是在运行时注册例程以通过单个接口处理不同types的对象: class processor { public: template <typename T, typename Handler> void register_handler(Handler handler) { handlers[type_id<T>()] = [handler](void const* v) { handler(*static_cast<T const*>(v)); }; } template <typename T> void process(T const& t) { auto […]

underscore.js嵌套模板

是否有可能以某种方式从下划线模板采取DOM元素,并将其用作另一个模板? 这个想法是,我的应用程序需要呈现一个包含项目和摘要循环的文档。 我需要偶尔重新渲染一个概要或几个项目,所以我不能只重新渲染整个文档。 不过,我希望应用程序用户能够简单地为文档创build自己的模板,我认为将所有内容保存在一个文档中可以使文档更容易。 我试图使用这样的东西: <script type="text/template" id="document-template"> <div id="document"> <h1><%= name %></h1> <ul class="items"> <% _.each(items, function(item) { %> <li><%= item %></li> <% }); %> </ul> <div id="summary"> <p>Total items: <%= totalitems %></p> </div> </div> </script> 现在,我可以很容易地做这个var documentTemplate = _.template($('#document-template').html()); 把它变成一个文档模板,但我想把摘要部分变成模板和列表项目。 我可以做这样的事情吗? var summaryTemplate = _.template($('#document-template #summary').html()); var itemTemplate = _.template($('#document-template .items li').html()); PS。 […]

是否有可能嵌套在选项哈希与帮助柄的助手?

例如,有没有办法将我的“ i18n ”助手嵌套在另一个助手的哈希variables中? {{view "SearchView" placeholder="{{t 'search.root'}}" ref="search" url="/pages/search" className='home-search' polyfill=true}}

在jar文件中加载velocity模板

我有一个项目,我想加载速度模板来完成它的参数。 整个应用程序打包成一个jar文件。 我最初想到的是这样的: VelocityEngine ve = new VelocityEngine(); URL url = this.getClass().getResource("/templates/"); File file = new File(url.getFile()); ve = new VelocityEngine(); ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "file"); ve.setProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, file.getAbsolutePath()); ve.setProperty(RuntimeConstants.FILE_RESOURCE_LOADER_CACHE, "true"); ve.init(); VelocityContext context = new VelocityContext(); if (properties != null) { stringfyNulls(properties); for (Map.Entry<String, Object> property : properties.entrySet()) { context.put(property.getKey(), property.getValue()); } } final String templatePath = templateName […]

如何在AngularJS的ngInclude指令中指定模型?

我想在3个地方使用相同的HTML模板,每次都使用不同的模型。 我知道我可以访问模板中的variables,但是名称会有所不同。 有没有办法将模型传递给ngInclude? 这是我想实现的,当然,属性add-variable现在不起作用。 然后在我包含的模板中,我将访问detailsObject及其属性。 <pane title="{{projectSummary.ProjectResults.DisplayName}}"> <h2>{{projectSummary.ProjectResults.DisplayName}}</h2> <ng-include src="'Partials/SummaryDetails.html'" init-variable="{'detailsObject': projectSummary.ProjectResults}"></ng-include> </pane> <pane title="Documents" header="true"></pane> <pane ng-repeat="document in projectSummary.DocumentResults" title="{{document.DisplayName}}"> <h2>{{document.DisplayName}}</h2> <ng-include src="'Partials/SummaryDetails.html'" add-variable="{'detailsObject': document}"></ng-include> </pane> <pane ng-repeat="header in [1]" title="Languages" header="true"></pane> <pane ng-repeat="language in projectSummary.ResultsByLanguagePairs" title="{{language.DisplayName}}"> <h2>{{document.DisplayName}}</h2> <ng-include src="'Partials/SummaryDetails.html'" add-variable="{'detailsObject': language}"></ng-include> </pane> 如果我使用ng-include的方法不好,还有什么我应该尝试的?

在static_assert输出中整合types名称?

我喜欢提供有用的错误/消息,我也想为我的static_assert这样做。 问题是,他们依赖于模板参数。 通常情况下,这些参数会因为出错而显示在屏幕上或者其他屏幕上,但是这些参数要么是模糊的,要么是没有分组,所以它们是有意义的。 例: template<class T> struct fake_dependency{ static bool const value = false; }; template<class T, class Tag> struct Foo{ Foo(){} template<class OtherTag> Foo(Foo<T, OtherTag> const&){ static_assert(fake_dependency<T>::value, "Cannot create Foo<T,Tag> from Foo<T,OtherTag>."); } }; int main(){ Foo<int, struct TagA> fA; Foo<int, struct TagB> fB(fA); } MSVC输出: src\main.cpp(74): error C2338: Cannot create Foo<T,Tag> from Foo<T,OtherTag>. […]

Mako或Jinja2?

我没有find一个很好的比较jinja2和Mako。 你会用什么来完成什么任务? 我personnaly满意mako(在一个挂架web应用程序上下文),但很好奇,知道jinja2有一些不错的function/改进,mako不? – 或者也许是缺点?

我应该在哪个文件夹中放置“全局”共享部分模板?

我正在使用Ruby on Rails 3.0.7,并计划使用部分模板。 我的应用程序中的所有类将使用相同的部分,所以我必须决定在哪里find所有这些。 将“全局”共享部分模板放在lib文件夹中是个好主意吗? 如果不是,那么select文件夹放在那里的常见做法是什么? 有关如何正确命名和加载该文件夹的任何build议?

如何通过索引设置std :: tuple元素?

可以使用std::get通过索引从std::tuple获取元素。 类比,如何通过索引设置元组的元素?