template < int >
class CAT
{};
int main()
{
int i=10;
CAT<(const int)i> cat;
return 0; //here I got error: ‘i’ cannot appear in a constant-expression
}
Run Code Online (Sandbox Code Playgroud)
甚至
int i=10;
const int j=i;
CAT<j> cat; //this still can not work
Run Code Online (Sandbox Code Playgroud)
但我已将我转换为const int,为什么编译器仍报告错误?
我的平台是ubuntu,gcc版本4.4.3
谢谢,
==============
谢谢你的输入,但在某些情况下,我需要一个非const变量,
例如:
//alloperations.h
enum OPERATIONS
{
GETPAGE_FROM_WEBSITE1,
GETPAGE_FROM_WEBSITE2,
....
};
template< OPERATIONS op >
class CHandlerPara
{
static string parameters1;
static string parameters2;
....
static void resultHandler();
};
//for different operations,we need a different …Run Code Online (Sandbox Code Playgroud) 我有一个接口类MyFunction.此类中有三个函数,具有以下签名:
virtual bool Eval(int& iReturnVal, size_t szArgumentCount, list<Param> lParameterList) = 0;
virtual bool Eval(double& dReturnVal, size_t szArgumentCount, list<Param> lParameterList) = 0;
virtual bool Eval(char*& zReturnVal, size_t szArgumentCount, list<Param> lParameterList) = 0;
Run Code Online (Sandbox Code Playgroud)
现在,任何实现MyFunction只需要实现其中一个函数,具体取决于它需要返回什么类型的值.但即使其他两个函数是这样的,我也必须实现所有3个函数:
virtual bool Eval(double& dReturnVal, size_t szArgumentCount, list<Param> lParameterList){return false;}
Run Code Online (Sandbox Code Playgroud)
哪个看起来不那么好.或者,我可以在界面中声明这样的所有三个函数:
virtual bool Eval(int& iReturnVal, size_t szArgumentCount, list<Param> lParameterList){return false;}
virtual bool Eval(double& dReturnVal, size_t szArgumentCount, list<Param> lParameterList){return false;}
virtual bool Eval(char*& zReturnVal, size_t szArgumentCount, list<Param> lParameterList){return false;}
Run Code Online (Sandbox Code Playgroud)
这看起来也很难看.这两个中不那么丑陋的是什么?或者有更好的方法吗?
编辑:
关于D Krueger的方法:
#include <iostream>
using …Run Code Online (Sandbox Code Playgroud) 我想在php中编写正则表达式,以匹配双引号和单引号中的行.其实我正在编写用于删除css文件中的注释行的代码.
喜欢:
"/* I don't want to remove this line */"
Run Code Online (Sandbox Code Playgroud)
但
/* I want to remove this line */
Run Code Online (Sandbox Code Playgroud)
例如:
- valid code /* comment */ next valid code "/* not a comment */" /* this is comment */
Run Code Online (Sandbox Code Playgroud)
预期结果:
- valid code next valid code "/* not a comment */"
Run Code Online (Sandbox Code Playgroud)
请任何人根据我的要求在PHP中给我一个正则表达式.
正在浏览与此类似的帖子,但没有人回答我的问题.
与CoreDataBooks一样,我使用单独的MOC来添加和编辑项目并观察正确的通知,如下所示:
- (void)addControllerContextDidSave:(NSNotification*)saveNotification {
NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
// Merging changes causes the fetched results controller to update its results
[context mergeChangesFromContextDidSaveNotification:saveNotification];
NSLog(@"merging changes in rootview");
}
Run Code Online (Sandbox Code Playgroud)
当我进行保存时,它被正确观察到了.调试通知显示正确的上下文,调试上下文显示刚添加的项目.日志消息也打印得很好.但没有任何反应.NSFetchedResultsController的委托方法都没有触发,也没有更新表视图.
我没有尝试缓存或清除它.我试过reloadDatatableView,但没有.当我退出应用程序并重新启动时,它显示正常.
更新:通知确实包含正确的上下文object,其中包含正确的项目,但userInfo哈希中没有任何内容:
userInfo = {
inserted = "{(\n)}";
updated = "{(\n)}";
}
Run Code Online (Sandbox Code Playgroud)
因此,看起来通知中没有任何更改,尽管具有更改项目的正确上下文....嗯.
很抱歉打扰你,但我被困在COBOL的作业上.我做了两次尝试,但都没有按预期工作.
下面显示了两次尝试及其输出,然后是最终结果.我感谢你们的帮助.
第一次尝试:
IDENTIFICATION DIVISION.
PROGRAM-ID. MAIL-LABEL.
*
******************************************************************
* This program prints duplicate side by side mailing labels.
******************************************************************
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT LABEL-FILE-IN
ASSIGN TO 'MAIL-LABEL.SEQ'
ORGANIZATION IS LINE SEQUENTIAL.
SELECT LABEL-FILE-OUT
ASSIGN TO 'MAIL-LABEL.RPT'
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD LABEL-FILE-IN.
01 LABEL-RECORD-IN.
05 NAME-IN PIC X(20).
05 ADDRESS-IN PIC X(20).
05 CITY-STATE-ZIP-IN PIC X(20).
FD LABEL-FILE-OUT.
01 LABEL-RECORD-OUT.
05 LEFT-LABEL-OUT PIC X(20).
05 BLANK-OUT PIC X(15).
05 RIGHT-LABEL-OUT PIC X(20).
05 …Run Code Online (Sandbox Code Playgroud) svn status --xml打印所有文件状态,它比解析svn status输出更有用.
是否有XML文件中所有可能的标签/部分及其值的列表?我可以阅读SVN源,但它耗时且方法很脏.
是否有可能找到从svn status --xml值到svn status状态字符的干净地图?
我已经下载了Eclipse C/C++ IDE.我需要在这里运行一个简单的c程序(打印欢迎).
在尝试运行该程序时,它会弹出一条错误消息 "Launch failed: Binary not found" .
需要我安装任何编译器包.?
请帮我这样做.
Where exactly does serialization comes into the picture? I read about serializtion on the 'net and I have come to know that
它是一个接口,如果在类中实现,意味着它可以被不同的序列化器自动序列化和反序列化.
给我一个很好的理由,为什么以及什么时候需要序列化一个类?假设一旦序列化,究竟发生了什么?
我的基本目标是编写一个关于Kroz王国的.NET翻版.对于那些不熟悉游戏的人:
http://www.indiefaqs.com/index.php/Kingdom_of_Kroz
http://www.youtube.com/watch?v=cHwlNAFXpIw
最初它应该是一个快速分心的项目,让我从最近占据我大部分时间的所有通用企业WCF/WF/LINQ2SQL /等工作项目中休息一下.虽然我的努力的结果是可玩的,它看起来像绝对的屁股(即使对于基于控制台的游戏),因为我重绘每个帧中的所有内容的方式.
我知道一些替代方法,但在我做过的简短测试中,他们仍然没有提供显着的性能或美学效益.如果我可以提供帮助,我不想诉诸"模拟"控制台的库.我更喜欢使用适当的Win32控制台API,但如果我可以帮助它,不要直接使用它.请记住,这是一个明显的利基用例,对于这种情况,"通常"接受的最佳方法是什么?是否应该注意特别优化的控制台"绘图"技术?我不介意在PInvoke的海洋游泳和编组,只要它仍然以快速,响应和高效的控制台UI结束.
我想知道,在下面的情况下我需要调用DeleteObject吗?
CFont* oldFont = label.GetFont();
LOGFONT oldLogFont;
oldFont->GetLogFont(&oldLogFont);
oldLogFont.lfWeight = FW_BOLD;
CFont newFont;
newFont.CreateFontIndirectW(&oldLogFont);
label.SetFont(&newFont, true);
// Do I need to call oldFont->DeleteObject() or newFont->DeleteObject()?
Run Code Online (Sandbox Code Playgroud)
谢谢。