小编Kir*_*lev的帖子

在C中更改当前进程的优先级

在Windows上,我可以这样做:

HANDLE hCurrentProcess = GetCurrentProcess();

SetPriorityClass(hCurrentProcess, ABOVE_NORMAL_PRIORITY_CLASS);
Run Code Online (Sandbox Code Playgroud)

我怎么能在*nix上做同样的事情?

c unix process-management cross-platform

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

自动拆分(重构).h到标头和实现(h + cpp)

在编写C++代码时,我经常从在头文件中编写完整的"实现"代码开始,然后需要将实现重构为.cpp文件.

这很好,但是我觉得这个过程很费力,但其他方面很简单,所以我想知道是否有任何自动化方法可以做到这一点?

具体来说,我想转换.h到声明中的所有类和函数定义,并在新.cpp文件中声明它们.

我正在使用xcode,但我对任何解决方案持开放态度.

c++ refactoring header-files automated-refactoring

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

检查订阅中azure存储帐户中使用的空间

如何在我的订阅资源组中检查我在每个azure存储帐户中使用的空间大小.

我无法通过PowerShell,CLI,门户网站检查azure存储帐户中使用的空间.

azure azure-storage local-storage azure-storage-blobs

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

晃来晃去参考.悬挂指针和参考的替代方案?

以下代码生成悬空引用:

int main()
{
  int *myArray = new int[2]{ 100, 200 };
  int &ref = myArray[0];
  delete[] myArray;
  cout << ref;  // Use of dangling reference.
}
Run Code Online (Sandbox Code Playgroud)

我知道我不应该删除的磁盘阵列,但在一个大的程序,如果有人有什么删除记忆,而我有一个参考?它可以以某种方式确保没有人删除阵列吗?

什么是反对悬挂引用和悬空指针的最佳策略?

c++ pointers reference

10
推荐指数
3
解决办法
7066
查看次数

为什么编译器在定义类似的模板特化时不会出错?

比较班级template专业化的程序是什么?关于这一点,标准没有详细说明(或者我错过了正确的地方).
我的问题与决定在实例化期间使用什么专业化无关.请不要对此发表评论.问题是关于比较专业化以确定是否已定义特定专业化.

考虑以下示例代码:

template <class x1, class x2>
struct CoreTemplate { };

template <class x1, class x2>
struct CoreTemplate<x1*, x2*> { int spec; CoreTemplate() { spec = 1; } };

template <class x1, class x2>
struct CoreTemplate<x2*, x1*> { int spec; CoreTemplate() { spec = 2; } };

int main(int argc, char* argv[])
{
    CoreTemplate<int*, int*> qq;
    printf("var=%d.\r\n", qq.spec);
}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用MSVC编译此代码时,我在main函数内部实例化尝试时出错:

cpptest1.cxx(15):错误C2752:' CoreTemplate<x1,x2>':多个部分特化与模板参数列表匹配

对我来说,为尝试声明相同的模板特化而发出错误更合乎逻辑.我认为上述专业化没有任何区别.

那么,有没有人知道比较模板特化的规则?文章,链接,书籍等也会有所帮助.

c++ templates compiler-errors template-specialization

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

带有嵌套类的c ++抽象类.派生类和嵌套类

我必须写自己的容器任务Linked_listArray_list.我有一个接口:

typedef int value_type;
class Container 
{
public:
        class Iterator 
        {   
        public:
            Iterator();
            Iterator(value_type* other);
            Iterator(const Iterator& other);
            Iterator& operator=(const Iterator& other);
                    ...
        };

    Container();
    Container(const Container& other);
    ~Container();   

    virtual value_type& front() const=0;
    virtual value_type& back() const=0;
    virtual Iterator begin() const=0; // 
    ...
};
Run Code Online (Sandbox Code Playgroud)

我做了派生类Linked_list和Array_list:

class Linked_list:public Container 
{
public:
    long int cur_size;
    List elem;
    static Link end_;
    class Iterator: public Container::Iterator
    {
        friend Linked_list;
        Link *p;    
    };

    Iterator begin() const; //overriding virtual function return type …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance nested abstract

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

-c选项在GCC中做什么

有谁知道-c国旗的作用是gcc什么?

例如,有什么区别

gcc -c output0.c
vs gcc output0.c
Run Code Online (Sandbox Code Playgroud)

我知道第二个创建一个.a文件,但我不知道.a文件是做什么的.

还有什么-o做的

gcc output0.o -o output0
Run Code Online (Sandbox Code Playgroud)

只是将输出文件命名为right?

c gcc gdb

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

.NET 4.0协方差

在回答另一个问题时,我试图做到以下几点.我不认为我正确地解释了这个问题,但我确实想知道下面是否可能以某种方式(我的尝试失败),如果不是为什么不:

    public class MyBaseClass { }

    public class MyClass : MyBaseClass { }

    public class B<T> { }

    public class A<T> : B<T> { }

    static void Main(string[] args)
    {
        // Does not compile
        B<MyBaseClass> myVar = new A<MyClass>();
    }
Run Code Online (Sandbox Code Playgroud)

我认为这可以使用具有协变类型参数的通用接口来工作:

    interface IB<out T> { }

    public class B<T> : IB<T> { }
Run Code Online (Sandbox Code Playgroud)

但我错了,这也行不通.

编辑

正如SLaks指出的那样'接口是协变的; 上课不是.' (感谢SLaks).所以现在我的问题是为什么?这个设计背后的想法(我认为Eric Lippert的一个想法)是不可能的,不受欢迎的还是在'也许是一天'的名单上?

.net c# generics covariance

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

从C程序中执行程序

我应该如何从我的C程序中运行另一个程序?我需要能够将数据写入STDIN已启动的程序(并且可以从中读取STDOUT)

我不确定这是否是标准的C函数.我需要在Linux下运行的解决方案.

c linux

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

#if条件区域可以包含文件边界吗?

在MSDN(https://msdn.microsoft.com/en-us/library/ew2hz0yd.aspx)中,我看到以下内容:

所有条件编译指令,如#if和#ifdef,必须与文件结束前的结束#endif指令匹配; 否则,将生成错误消息.当条件编译指令包含在包含文件中时,它们必须满足相同的条件:在包含文件的末尾必须没有不匹配的条件编译指令.

嗯,简单明了.同时我在C++ 11标准中找不到类似的东西.我的问题是这个法律限制?

我完全理解将条件编译分成#include 几层并不是一个好主意,应该避免.

有谁知道其他编译器(GCC,CLANG)如何处理这种情况?也许在某处讨论过这个问题?

c++ language-lawyer c-preprocessor

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