小编Ben*_*oît的帖子

112
推荐指数
13
解决办法
46万
查看次数

为什么预增量运算符在C中给出rvalue?

在C++中,预增量运算符给出左值,因为返回了递增的对象本身,而不是副本.但在C中,它给出了右值.为什么?

c c++ rvalue lvalue

28
推荐指数
1
解决办法
1949
查看次数

如何检查我的模板类是否具有特定的类型?

在我的模板化函数中,我试图检查类型T是否是特定类型.我该怎么办?

p/s我知道模板规范方式,但我不想这样做.

template<class T> int foo(T a) {
  // check if T of type, say, String?
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

c++ templates

25
推荐指数
5
解决办法
4万
查看次数

是否有用于模板的优化c ++编译器?

由于它的强大功能,C++模板在我的日常工作中一直是一种祝福.但是人们不能忽视大量使用模板(hello元编程和Boost库)导致的(非常非常非常长的)编译时间.我已经阅读并尝试了很多可能性来手动重新组织和修改模板代码,以使其尽可能快地编译.

现在我想知道是否有任何c ++编译器试图最小化解释模板类所需的时间.我可能错了,但我觉得我知道的编译器只在他们以前的版本中添加了模板解释.

我的问题是:

  • c ++模板代码是如此难以解释,以至于没有太多优化?(我非常怀疑)
  • 是否有真正优化"c ++模板"解释的c ++编译器?
  • 是否有项目开发新一代的c ++编译器来优化这一点?
  • 如果您参加这样的项目,您的指导方针是什么?

c++ compiler-construction templates

22
推荐指数
4
解决办法
4331
查看次数

如何在给定LdapContext的ldap whith java中检查用户密码?

我有一个Web应用程序,用户必须登录.密码存储在LDAP服务器中.有关LDAP服务器的所有信息都作为外部jndi资源存储在应用程序服务器(glassfish)中.所以我的应用程序对LDAP服务器一无所知,只得到像这样的LdapContext:

@Resource(name = "ldap/users")
private LdapContext ctx;
Run Code Online (Sandbox Code Playgroud)

使用此上下文,可以轻松更改或读取为用户存储的信息,但如何检查其密码?通常我会做一个新的连接来检查用户密码.像这样:

Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial");

env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=S. User, ou=NewHires, o=JNDITutorial");
env.put(Context.SECURITY_CREDENTIALS, "mysecret");

DirContext ctx = new InitialDirContext(env);
Run Code Online (Sandbox Code Playgroud)

但由于我不知道这个参数我不能这样做.那么如何使用我的LdapContext检查用户的密码是否正确?密码以加密方式存储(ssha),所以我不能只比较属性.

谢谢拉斐尔

java authentication web-applications ldap

18
推荐指数
2
解决办法
5万
查看次数

什么可以解释std :: cout不显示任何内容?

无论出于何种原因,std :: cout都不会显示我的应用程序.我的开发环境如下所示.

我正在使用Qt Creator开发Qt应用程序.由于Qt Creator无法从我的工作站(XP64)启动,我目前正在使用Visual Studio 2008和Qt插件(通过导入.pro项目文件)进行开发.一切似乎都很好,应用程序工作.

在某些情况下(取决于命令行参数),我不想启动HIM,只是在CLI中显示几个句子(例如,命令行必需参数).

我没有收到任何错误,但没有显示任何内容.我相信运行的相应代码是(经典)以下:

std::cout << "is this going to be displayed ?" << std::endl;
Run Code Online (Sandbox Code Playgroud)

你知道为什么没有显示什么吗?

c++ qt cout qt-creator visual-studio

15
推荐指数
3
解决办法
2万
查看次数

在没有模板专门化的情况下更改函数的返回类型.C++

我想知道是否可以根据分配给它的变量类型来更改函数的返回类型.这是我的意思的一个简单例子.

我想创建一个从字符串中解析int,bool或float变量的函数.例如...

Int value = parse("37");
Float value = parse("3.14");
Bool value = parse("true");
Run Code Online (Sandbox Code Playgroud)

我理解如果我将此函数设为模板,则必须从参数列表中确定变量类型,该列表始终是一个字符串.用c ++还有其他方法吗?

c++ templates return

14
推荐指数
3
解决办法
7033
查看次数

用于C++的Sentinel while循环

任何人都可以告诉我在C++循环中什么是哨兵?请给我一个使用sentinel while循环的例子.

c++ loops while-loop

12
推荐指数
1
解决办法
4万
查看次数

1984年3月16日发生了什么?

我想弄清楚1984年3月16日有什么特别之处.在我使用的虚拟机上(没有什么特别之处),Python(以及PyPy)在尝试使用mktime时崩溃了,这似乎是一个非常合理的时间结构.

$ pypy
Python 2.7.3 (f66246c46ca30b26a5c73e4cc95dd6235c966b8f, Jul 30 2013, 09:27:06)
[PyPy 2.0.2 with GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>> import time
>>>> time.mktime((1984,3,16,0,0,0,0,0,0))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: mktime argument out of range
>>>> time.mktime((1984,3,15,0,0,0,0,0,0))
448156800.0
>>>> time.mktime((1984,3,17,0,0,0,0,0,0))
448326000.0
>>>> time.mktime((1984,3,16,0,0,0,0,0,0))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: mktime argument out of range
>>>> …
Run Code Online (Sandbox Code Playgroud)

python timezone pypy mktime

11
推荐指数
2
解决办法
593
查看次数

关于C++中声明语法的技巧问题

看看这里:在下面的代码中,b的类型是什么?

struct A {
    A (int i) {}
};

struct B {
    B (A a) {}
};

int main () {
    int i = 1;
    B b(A(i)); // what would be the type of b
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果有人能够彻底向我解释为什么会存在这样的语法,我将不胜感激:)

谢谢.

c++ syntax

9
推荐指数
3
解决办法
1702
查看次数