通常我用C#编程但是被迫在C++中做一些工作.与C#相比,与Visual Studio(2008)的集成似乎真的很差,但我想知道是否有任何可以改善这种情况的好工具,插件或配置.
另一篇文章指出了Visual Assist X程序,它至少可以帮助重构一些事情(尽管对我来说有点贵).但是,我的主要问题是,编译错误几乎没有给出错误的线索,我花了大部分时间来弄清楚我做错了什么.它只是感觉可能静态地检查比VS开箱即用更多的错误.为什么它不像C#那样提供蓝色下划线,这应该不会太难?!
我意识到问题的一半只是我是C++的新手,但我真的觉得让程序编译起来是不合理的.有没有这种工具或我的要求太高?
让我们说由于某种原因你需要写一个宏:MACRO(X,Y). (我们假设您有一个很好的理由不能使用内联函数.) 您希望此宏模拟对没有返回值的函数的调用.
if (x > y)
MACRO(x, y);
do_something();
Run Code Online (Sandbox Code Playgroud)
if (x > y)
MACRO(x, y);
else
MACRO(y - x, x - y);
Run Code Online (Sandbox Code Playgroud)
do_something();
MACRO(x, y)
do_something();
Run Code Online (Sandbox Code Playgroud)
编写宏的天真方式是这样的:
#define MACRO(X,Y) \
cout << "1st arg is:" << (X) << endl; \
cout << "2nd arg is:" << (Y) << endl; \
cout << "Sum is:" << ((X)+(Y)) << endl;
Run Code Online (Sandbox Code Playgroud)
这是一个非常糟糕的解决方案,它失败了所有三个例子,我不应该解释原因.
忽略宏实际上做的事情,这不是重点.
现在,我经常看到编写宏的方法是将它们用大括号括起来,如下所示:
#define MACRO(X,Y) \
{ \
cout << "1st arg is:" << …Run Code Online (Sandbox Code Playgroud) 我有以下不能编译的代码,虽然有一种方法可以使它编译,我想了解它为什么不编译.有人可以告诉我具体为什么我收到错误信息,我会在最后发布吗?
public class Test {
public static void main(String args[]) {
Test t = new Test();
t.testT(null);
}
public <T extends Test> void testT(Class<T> type) {
Class<T> testType = type == null ? Test.class : type; //Error here
System.out.println(testType);
}
}
Run Code Online (Sandbox Code Playgroud)
Type mismatch: cannot convert from Class<capture#1-of ? extends Test> to Class<T>
通过投射Test.class到Class<T>这个编译与Unchecked cast警告并完美运行.
您对log4j或类似库中的日志类别使用了哪些约定?通常您将类名称视为类别,但是您是否使用过其他系统?
日志级别怎么样?你使用什么级别,在哪种情况下?
更新:正如你们中的一些人回答的那样,没有"正确"的答案.我只是在寻找人们使用的不同惯例作为灵感来源.
我有一个Web应用程序,用户可以在其中输入任意sql查询以供以后批处理.我们想验证查询的语法而不实际执行它.一些查询需要很长时间,这就是我们不想执行它们的原因.我正在使用Oracle的dbms_sql.parse来执行此操作.
但是,我现在需要知道结果集列的数量和类型.有没有办法在没有实际执行查询的情况下执行此操作?也就是说,让Oracle解析查询并告诉我实际执行查询时返回的结果数据类型/名称是什么?我使用的是Oracle 10g,它是一个Java 1.5/Servlet 2.4应用程序.
编辑:输入查询的用户已经是数据库中的用户.他们使用数据库凭据对我的应用进行身份验证,并使用这些凭据执行查询.因此,他们不能通过连接sqlplus来输入任何无法运行的查询.
有没有办法在不使用scriptlet的情况下在JSP中使用Enum值.
例如
package com.example;
public enum Direction {
ASC,
DESC
}
Run Code Online (Sandbox Code Playgroud)
所以在JSP中我想做这样的事情
<c:if test="${foo.direction ==<% com.example.Direction.ASC %>}">...
Run Code Online (Sandbox Code Playgroud) 我正在使用Borland Builder C++.我有一个内存泄漏,我知道它必须是因为我创建的这个类,但我不知道如何解决它.请看我的代码 - 任何想法将不胜感激!
这是.h文件:
#ifndef HeaderH
#define HeaderH
#include <vcl.h>
#include <string>
using std::string;
class Header {
public:
//File Header
char FileTitle[31];
char OriginatorName[16];
//Image Header
char ImageDateTime[15];
char ImageCordsRep[2];
char ImageGeoLocation[61];
NitfHeader(double latitude, double longitude, double altitude, double heading);
~NitfHeader();
void SetHeader(char * date, char * time, double location[4][2]);
private:
void ConvertToDegMinSec (double angle, AnsiString & s, bool IsLongitude);
AnsiString ImageDate;
AnsiString ImageTime;
AnsiString Latitude_d;
AnsiString Longitude_d;
double Latitude;
double Longitude;
double Heading;
double Altitude;
};
Run Code Online (Sandbox Code Playgroud)
这是一些.cpp文件: …
有一种观点认为在关系数据库中不应该允许空值.也就是说,表的属性(列)不应该允许空值.来自软件开发背景,我真的不明白这一点.似乎如果null在属性的上下文中有效,那么应该允许它.这在Java中非常常见,其中对象引用通常为null.没有广泛的数据库经验,我想知道我是否在这里遗漏了一些东西.
是否可以将ruby应用程序作为Windows服务运行?我看到有一个相关的问题讨论将Java应用程序作为Windows服务运行,如何使用Ruby应用程序执行此操作?
是否有适用于包含财务会计功能的软件的设计模式或其他最佳实践的良好资源(书籍,权威指南等)?
具体而言,关于处理问题的良好信息在哪里,如下所示:
注意:"权威"或其他广泛接受的信息是我们在这里寻找的.否则,这将变成人们尝试过的所有事物的轶事大列表,使主题非常主观.