小编ser*_*gej的帖子

如何在Windows资源管理器中添加"打开git-bash here ..."上下文菜单?

如何向Windows资源管理器添加上下文(也称为右键单击)菜单,单击此按钮可在当前资源管理器文件夹中打开git-bash控制台?

git contextmenu windows-explorer

98
推荐指数
7
解决办法
8万
查看次数

为什么可以在for-statement中重新分配引用const?

我是C++的新手,我对此感到困惑:

vector<int> v = { 1,2 };
const int &r1 = v[0];
//r1 = v[1];  // compiler will show error.
Run Code Online (Sandbox Code Playgroud)

我知道r1无法重新分配引用const .但请看下面的代码:

for (const int &r2 : v) cout << r2;
Run Code Online (Sandbox Code Playgroud)

为什么不会出错?参考const r2分配了两次,对吧?

c++

30
推荐指数
3
解决办法
1116
查看次数

如何将64位整数打印为十六进制?

使用以下代码,我尝试使用输出unit64_t变量的值printf().使用gcc编译代码,返回以下警告:

警告:格式'%x'需要'unsigned int'类型的参数,但参数2的类型为'uint64_t'[ - Wformat =]

代码:

#include <stdio.h>
#include <stdint.h>

int main ()
{
    uint64_t val = 0x1234567890abcdef;
    printf("val = 0x%x\n", val);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

val = 0x90abcdef
Run Code Online (Sandbox Code Playgroud)

预期产量:

val = 0x1234567890abcdef
Run Code Online (Sandbox Code Playgroud)

如何使用printf()?输出64位值作为十六进制整数?x在这种情况下,说明符似乎是错误的.

c 64-bit gcc

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

如何表示地图文件依赖于add_executable?

我正在使用标准命令构建可执行文件:

add_executable(MyExe ac bc)

我正在调整CMAKE_EXE_LINKER_FLAGS以发出一个地图文件,它可以正常工作.

但是,如果删除映射文件,则执行增量构建不会重新生成映射文件.这是有道理的,因为我没有表达过cmake地图文件依赖于MyExe.在上面的场景中,MyExe.map甚至不是目标,因此cmake甚至不知道它存在.

我已经尝试创建自定义目标,但我无法创建重新生成映射文件的自定义命令,因为它来自add_executable.然后我尝试使用add_dependencies(),但这似乎只影响构建顺序.

我可以显式地重新运行链接器作为构建自定义目标的自定义命令,但这似乎很浪费,因为链接确实需要一些时间.

几乎看起来我需要一些方法来告诉add_executable除了可执行映像之外还有更多的输出.有没有办法做到这一点?

如果有人能指出我正确的方向,我会很感激!提前感谢您的阅读.

cmake map-files

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

为什么运行程序的性能会随着时间的推移而变得更好?

请考虑以下代码:

#include <iostream>
#include <chrono>

using Time = std::chrono::high_resolution_clock;
using us = std::chrono::microseconds;

int main()
{
    volatile int i, k;
    const int n = 1000000;

    for(k = 0; k < 200; ++k) {
            auto begin = Time::now();
            for (i = 0; i < n; ++i);  // <--
            auto end = Time::now();
            auto dur = std::chrono::duration_cast<us>(end - begin).count();
            std::cout << dur << std::endl;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我反复测量内部for循环的执行时间.结果如下图所示(y:持续时间,x:重复):

在此输入图像描述

是什么导致循环执行时间减少?

环境:linux(内核4.2)@ Intel i7-2600,编译使用:g++ -std=c++11 main.cpp -O0 -o …

c++ x86-64 c++11

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

具有类名的数据成员

标准说:"如果成员是静态数据成员,成员函数,成员类型,成员模板,未作用域枚举的枚举器,成员的成员,则T类的成员不能使用T作为其名称匿名联合.但是,只要没有用户声明的构造函数,非静态数据成员就可以使用名称T."

但是,如果我创建此类,则会产生编译错误.

class G
{
    int G;
};
Run Code Online (Sandbox Code Playgroud)

我正在使用VS2013.是不允许在Microsoft或?

c++ class member classname visual-c++

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

引用计数智能指针如何避免或处理引用计数器溢出?

在一个天真的引用计数智能指针实现中,引用计数器可能会溢出.在C++标准库实现中如何避免或处理这种溢出?

c++ smart-pointers integer-overflow refcounting automatic-ref-counting

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

SFINAE:运算符[]上的decltype

根据这里这里的答案,我试图使用以下

template <typename T>
using operator_square_brackets = decltype(&T::operator[]);
Run Code Online (Sandbox Code Playgroud)

它在视觉工作室失败了

error C2760: syntax error: expected ')' not ']'
Run Code Online (Sandbox Code Playgroud)

有想法该怎么解决这个吗?

c++ sfinae visual-studio

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

Git全局挂钩和项目挂钩

目前我正在使用

git config --global core.hooksPath ~/.git/hooks
Run Code Online (Sandbox Code Playgroud)

为我所有的git项目配置全局挂钩。但是,如果这些项目包含挂钩,则它们不会运行。

我想运行全局挂钩以及项目挂钩。谢谢!

git githooks

8
推荐指数
2
解决办法
574
查看次数

派生类中的显式模板静态成员实例化

我正在尝试使用静态成员实现模板类.从模板类派生的类应该被实例化,而不需要编写额外的代码.

这是我天真的(而不是成功的)方法:

Singleton.h:

template <class T> class Singleton {
protected:
  Singleton();
  static T instance_;
}

// explicit instantiation of 'instance_' ???, 
// where 'instance_' is an instance of the derived class
template <class T> T Singleton<T>::instance_;
Run Code Online (Sandbox Code Playgroud)

ConcreteA.h:

class ConcreteA : public Singleton<ConcreteA> {
public:
  ConcreteA();
  void foo();
}
Run Code Online (Sandbox Code Playgroud)

main.c中:

int main() {
  // an instance of ConcreteA should have been created (no extra code)!!!
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法强制的实例ConcreteA由刚刚获得ConcreteASingleton,而无需编写额外的实例代码?

一个肮脏的解决方法instance_ConcreteA …

c++ inheritance singleton templates c++11

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