小编Jus*_*tin的帖子

Clang - Getting SubstTemplateTypeParm full template information

I am traversing a clang AST, but am having trouble getting the desired information when traversing the type information of a declaration of the AST that contains a clang::SubstTemplateTypeParmType.

Given the following minimal input code to clang tooling

#include <map>

template <typename K, typename V> using Map = std::map<K, V>;
using String = std::string;
using ParameterMap = Map<String, String>;

ParameterMap someFunc();
Run Code Online (Sandbox Code Playgroud)

When recursing through ParameterMap's type, clang says that the first Map parameter arg, String, is a clang::SubstTemplateTypeParmType …

c++ windows clang llvm-clang

8
推荐指数
1
解决办法
121
查看次数

64位java不会分配超过2GB的堆内存

我正在从eclipse运行我的程序并使用64位java,但我仍然无法分配超过2GB的内存.我正在运行一些基准,所以我需要大量的内存.

我在eclipse.ini中有这个:-Xmx8g

我想要它用尽我所有的记忆.这可能是因为32位版本的eclipse?我不确定我对日食的看法.

我在运行程序时尝试将-Xmx8g发送到VMArgs.我正在运行64位Windows 7和64位JRE.

java eclipse heap

7
推荐指数
2
解决办法
1万
查看次数

使用AND,NOT和ADD操作实现向左旋转

我执行16位的位移位器通过旋转位到左侧[R .我只能访问到AND,NOTADD操作.有3个条件代码:负数,正数,在使用任何这些操作时都会设置.

这是我的方法:

  1. AND用数字1000 0000 0000 0000来设定条件码以积极的,如果最显著位1.
  2. ADD与自己的数字.这将位向左移位一位.
  3. 如果MSB是1,ADD 1结果.
  4. 循环步骤(1) - (3)r次.

有没有其他有效的方法可以做到这一点?

assembly

6
推荐指数
1
解决办法
1086
查看次数

功能对象安全风险

我正在阅读一篇关于C++ 11的文章,作者提到使用lambdas的一个优点是避免了函数对象的繁琐和安全风险.

FO有哪些安全风险?

来源:C++ 11中最大的变化以及你应该关注的原因

c++ function-object

6
推荐指数
0
解决办法
263
查看次数

shared_ptr会自动释放内存吗?

我需要在这里使用shared_ptr,因为我无法更改API.

Foo1 *foo1 = new Foo1(...);
shared_ptr<Foo2> foo2(foo1);
Run Code Online (Sandbox Code Playgroud)

这里的shared_ptr是否会处理释放foo1使用的内存?如果我理解正确,我不应该在foo1上调用删除正确吗?

c++ memory-management shared-ptr

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

如何防止他人使用我的系统,但仍然使用incredibuild分发我的构建?

如何阻止其他人使用我的系统构建,但仍然使用incredibuild通过网络分发我的构建?

incredibuild

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

什么"虽然<> b"在伪代码中意味着什么?

在赋值中,我们将使用特定的算法来查找汇编中用汇编编写的最大公约数.

算法如下:

Input:a,b
Local: c
 While a <> b
     While a > b
         c = a - b
         a = c
     End While
     While b > a
         c = b - a
         b = c
     End While
End While
At this point, GCD(a,b)=a=b.  
Run Code Online (Sandbox Code Playgroud)

什么是一个<> b在第三行是什么意思?

pseudocode

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

以汇编语言递归反转位

给定16位序列,我想递归地反转这些位.
例如,1001 1110 0010 0110变为0110 0100 0111 1001.

我只能访问ADD,AND和NOT.
子程序接受2个参数,剩余要反转的位数和位值.它返回结果.

我正试着想办法做到这一点.突然出现的一件事就是有一系列的比特:0000 0000 0000 0001开始,然后将自己的剩余比特数加上-1次,然后用传入的比特模式对这些比特进行加权.问题是这看起来非常缺乏,而且我也不确定如何存储结果以反转位.

有什么暗示吗?这是功课,所以请提示:)

assembly

2
推荐指数
1
解决办法
2035
查看次数

枚举的起始值是0和0x0000之间有区别吗?

这是否会改变枚举值中存储或增加值的方式?如果它们相同,为什么人们将其定义为0x000?

c++ enums

2
推荐指数
1
解决办法
7704
查看次数

删除顺序,NULL指针或内存泄漏

我有以下情况:

Foo1 foo1* = new Foo1(...);
Foo2 foo2* = new Foo2(foo1, ...);
Run Code Online (Sandbox Code Playgroud)

要么

Foo1 foo1(...);
Foo2 foo2(foo1, ...);
Run Code Online (Sandbox Code Playgroud)

我需要删除Foo1和Foo2.如果我理解正确,我应该按照分配的相反顺序释放内存.所以我应该这样做:

delete(foo2);
delete(foo1);
Run Code Online (Sandbox Code Playgroud)

但是我不能这样做,因为在foo2的析构函数中foo1被设置为NULL.所以当我尝试删除foo2时,它试图删除一个NULL引用并触发一个断言.有没有解决的办法?这里最好的解决方案是允许我仍然将内存分配给堆栈,但绝对没有必要.


编辑:

看到这个主题:shared_ptr会自动释放内存吗?

感谢您的回复.关于问题是什么(显然)我是错的.我需要在这里使用shared_ptr,因为我无法更改API.

Foo1 *foo1 = new Foo1(...);
shared_ptr<Foo2> foo2(foo1);
Run Code Online (Sandbox Code Playgroud)

这里的shared_ptr是否会处理释放foo1使用的内存?如果我理解正确,我不应该在foo1上调用删除正确吗?

我会问一个单独的问题并链接到它.

c++ memory memory-management

1
推荐指数
2
解决办法
1410
查看次数

如何在 C# 中从对象转换为使用泛型的类型

我的方法收到一个object. 我确定它是一个使用反射的二维元组Tuple<,>。我不知道编译时二维元组的通用类型。如何访问元组中的字段?我假设我必须转换为底层元组类型,但我不知道如何转换。

public static class Foo
{
    private static Bar(object inputObject, Type inputType)
    {
        if (inputType.IsOrImplementsType(typeof(Tuple<,>)))
        {
            Type keyType = inputType.GenericTypeArguments[0];
            Type valueType = inputType.GenericTypeArguments[1];                
            // Now how can I cast to the concrete type of Tuple<keyType, valueType> to access the tuple Item1 and Item2 fields?
            // Doing this yields : keyType is a variable but is used like a type.
            var convertedTuple = inputObject as Tuple<keyType, valueType>;
            // now we can access convertedTuple.Item1
        }
    } …
Run Code Online (Sandbox Code Playgroud)

c# reflection casting

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

具有条件perl的foreach循环?

是否有可能foreach在Perl中有一个带有条件的循环?

我不得不通过字符处理做很多字符 - foreach循环非常方便.请注意,我不能使用某些库,因为这是为了学校.

如果有必要,我可以for使用substr条件编写循环,但我想避免这种情况!

perl for-loop

0
推荐指数
1
解决办法
2593
查看次数