我在尝试实现自定义流类以在输出文件中生成漂亮的缩进代码时遇到了一些麻烦.我在网上广泛搜索,但似乎没有就实现这一目标的最佳方式达成共识.有些人谈论派生流,其他人谈论推导缓冲,而其他人建议使用locales/facets等.
基本上,我发现自己写了很多这样的代码:
ofstream myFile();
myFile.open("test.php");
myFile << "<html>" << endl <<
"\t<head>" << endl <<
"\t\t<title>Hello world</title>" << endl <<
"\t</head>" << endl <<
"</html>" << endl;
Run Code Online (Sandbox Code Playgroud)
当标签开始加起来时,它看起来很糟糕,看起来像这样的东西会很好:
ind_ofstream myFile();
myFile.open("test.php");
myFile << "<html>" << ind_inc << ind_endl <<
"<head>" << ind_inc << ind_endl <<
"<title>Hello world</title>" << ind_dec << ind_endl <<
"</head>" << ind_dec << ind_endl <<
"</html>" << ind_endl;
Run Code Online (Sandbox Code Playgroud)
即创建一个派生流类,它将跟踪其当前的缩进深度,然后一些操纵器增加/减少缩进深度,一个操纵器编写一个换行符,然后是多个标签.
所以这是我实现类和操纵器的镜头:
ind_ofstream.h
class ind_ofstream : public ofstream
{
public:
ind_ofstream();
void incInd();
void decInd();
size_t getInd();
private:
size_t …Run Code Online (Sandbox Code Playgroud) 我正在使用EF5开发一个Web应用程序.我想在管理页面上显示数据库版本(即迁移的名称)......这样,如果站点部署到我没有数据库管理员权限的环境,我仍然可以登录如果我需要生成升级脚本,后端找到版本.是否有我可以用来获取此信息的DBContext属性?