摘要: 首先在java中添加如下类: 1 package com.filter;//包名 2 3 import java.io.IOException; 4 5 import javax.servlet.Filter; 6 import javax.servlet.FilterChain; 7 import javax.servlet.FilterConfig; 8 import javax.servlet.ServletException; 9 import javax.servlet.ServletRequest;10 import javax.servlet.ServletResponse;.. 阅读全文
posted @ 2011-11-25 22:12 MagiCube 阅读(898) 评论(0) 推荐(0) 编辑
摘要: 表达式模板是一种C++模板元编程(template metaprogram)技术。典型情况下,表达式模板自身代表一种操作,模板参数代表该操作的操作数。模板表达式可将子表达式的计算推迟,这样 有利于优化(特别是减少临时变量的使用)。表达式模板也可以作为参数传递给一个函数。例子:我们实现一个用来求表达式 x = 1.2*x + x*y 的模板表达式,其中x、y为数组//exprarray.h#include <stddef.h>#include <cassert>#include "sarray.h"template<typename T>c 阅读全文
posted @ 2011-11-17 10:58 MagiCube 阅读(1044) 评论(0) 推荐(0) 编辑
摘要: metaprogramming含有“对一个程序进行编程”的意思,换句话说,编程系统会执行我们所写的代码,来生成新的代码,而这些新代码才正真体现了我们所期望的功能。通常而言,metaprogramming这个概念意味着一种发射的特性:metaprogramming组件只是程序的一部分,而且它也只生一部分代码或者程序。我们为什么需要metaprogramming呢?和大多数程序设计技术一样,使用metaprogramming的目的是为了实现更多的功能,并且使花费的开销更小,其中开销是以:代码大小、维护的开销等来衡量的。另一方面,metaprogramming的最大特点在于:木屑用户自定义的计算可. 阅读全文
posted @ 2011-11-14 20:17 MagiCube 阅读(452) 评论(0) 推荐(0) 编辑
摘要: 先看一个matlab中的类代码:classdef TensileData properties Material = 'carbon steel'; SampleNumber = 0; Stress Strain end properties (Dependent) Modulus end methods function td = TensileData(material,samplenum,stress,strain) if nargin > 0 td.Materia... 阅读全文
posted @ 2011-11-08 19:15 MagiCube 阅读(16653) 评论(1) 推荐(0) 编辑
摘要: 解决办法:1)如果机子上没有安装matlab,到网上下一个matlab的运行库MCRInstaller,然后安装上就ok了。2)如果机子上已经安装了matlab,则到目录:matlab安装目录\toolbox\compiler\deploy\win32下,就会发现MCRInstaller可执行程序,运行它,就ok了。如果还不行,参考方法1。 阅读全文
posted @ 2011-11-08 16:07 MagiCube 阅读(1284) 评论(0) 推荐(0) 编辑
摘要: typedef是类型定义的意思,struct是定义结构体的意思,而typedef strcut是为这个结构体定义一个别名的意思;比如:typedef struct 结构名{类型 变量名;类型 变量名;...} 结构别名;这想当于2步操作:1)、struct 结构名{类型 变量名;类型 变量名;...} ;2)、typedef struct 结构名 结构别名;此时,结构别名 = struct 结构名;因为在C语言中,使用“struct 结构名{...};”定义一个结构的话,必须使用“struct 结构名 对象名”来定义一个对象。所以为了使用的方便,我们给这个结构名起来个别名叫“结构别名”,即ty 阅读全文
posted @ 2011-11-07 20:01 MagiCube 阅读(838) 评论(0) 推荐(0) 编辑
摘要: 之前我们为了实现一个累积的policy,我们选择把SumPolicy和MutPolicy实现为具有成员模版的普通类,这里,还存在另一种实现方法,即使用类模板来实现这个policy class接口:#ifndef SUMPOLICY_H#define SUMPOLICY_Htemplate<typename T1,typename T2>class SumPolicy{public: static void accumulate(T1& total,T2 const & value) { total += value; }};#endif我们对累积求和类Accum的接 阅读全文
posted @ 2011-11-07 19:16 MagiCube 阅读(2339) 评论(0) 推荐(0) 编辑
摘要: ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++; boot.asm; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++; Forrest Yu, 2005; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++; Noted by Ethan_zhang, 2011; +++++++++++++++++++++++... 阅读全文
posted @ 2011-11-07 15:54 MagiCube 阅读(3348) 评论(0) 推荐(0) 编辑
摘要: 先看下面的Makefile代码:# Makefile for boot# Programs, flags, etc.ASM = nasmASMFLAGS = -I include/# This ProgramTARGET = boot.bin loader.bin# All Phony Targets.PHONY : everything clean all# Default starting positioneverything : $(TARGET)clean : rm -f $(TARGET)all : clean everythingboot.b... 阅读全文
posted @ 2011-11-07 14:01 MagiCube 阅读(2208) 评论(0) 推荐(0) 编辑
摘要: 在上一节中所使用的trait被称为fixed trait,因为一旦定义了这个分离的trait,就不能在算法中对它进行改写,然而,在有些情况下,我们需要对trait进行改写。例如:我们可能偶尔发现可以对一组float值进行求和,然后很安全的把和值存储在一个具有相同类型(即float型)的变量里面,而且这样通常会给我们带来更高的效率。因此,我们更改我们的求和模版://accum5.h#ifndef ACCUM_H#define ACCUM_H#include"accumtraits4.h"template<typename T,typename AT = Accumula 阅读全文
posted @ 2011-11-02 23:19 MagiCube 阅读(375) 评论(0) 推荐(0) 编辑