小编dru*_*sta的帖子

私有类函数与未命名的命名空间中的函数

我发现自己不会有私人课程.如果可能的话,所有候选私有类函数,而不是我放入未命名的命名空间,并将所有必要的信息作为函数参数传递.我没有一个合理的解释,为什么我这样做,但至少它对我来说更自然.因此,我需要在头文件中公开更少的内部细节.

你有什么看法 - 这是正确的做法吗?

c++ coding-style api-design namespaces static-members

43
推荐指数
3
解决办法
8327
查看次数

如何从文件流中加速15M整数的加载?

我有一个预先计算的整数数组,它的固定大小为15M.我需要在程序启动时加载这些值.目前加载最多需要2分钟,文件大小约为130MB.是加速加载的方法吗?我也可以自由更改保存过程.

std::array<int, 15000000> keys;

std::string config = "config.dat";

// how array is saved
std::ofstream out(config.c_str());
std::copy(keys.cbegin(), keys.cend(),
  std::ostream_iterator<int>(out, "\n"));

// load of array
std::ifstream in(config.c_str());
std::copy(std::istream_iterator<int>(in),
  std::istream_iterator<int>(), keys.begin());
in_ranks.close();
Run Code Online (Sandbox Code Playgroud)

提前致谢.

解决了.使用接受答案中提出的方法.现在它只需要一眨眼.

全心全意感谢您的见解.

c++ stl stream

13
推荐指数
4
解决办法
1931
查看次数

如何跳过lambda代码里面的函数?

考虑下面的片段:

    [DebuggerStepThrough]
    private A GetA(string b)
    {
        return this.aCollection.FirstOrDefault(a => a.b == b);
    }
Run Code Online (Sandbox Code Playgroud)

如果我使用F11,调试器不会跳过该函数,而是在ab == b处停止.

有没有办法跳过这个功能而不是使用F10?

c# debugging visual-studio-2010

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

用于C/C++的ReSharper/StyleCop式Visual Studio插件

C/C++有类似ReSharper/StyleCop的Visual Studio插件吗?

我每天都在使用ReSharper和StyleCop插件.刚刚开始了一个涉及C/C++编程的新项目.我想念这些插件的一些功能,比如代码格式化,使用更清晰和更好代码的提示/提示,文档/统一代码要求,优化包含等等....

c c++ resharper add-on

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

未命名的命名空间中的全局非静态变量

我找不到关于未命名命名空间中的全局非静态变量的好解释.我尽可能地避免全局变量.在这个特殊情况下,我对纯粹理论方面的行为感兴趣.

假设以下代码:

在啊

namespace ai {
  class Widget {
    void DoSomething(int param);
  };
}
Run Code Online (Sandbox Code Playgroud)

在a.cc

namespace {
  int x;
  void Helper() {
  }
}

namespace ai {
  void Widget::DoSomething(int param) {
    x = param;
    Helper();
  }
}
Run Code Online (Sandbox Code Playgroud)
  1. 如果我要创建同一个类Widget的两个实例,两个实例是否会共享相同的变量x?

  2. 如果类实例与不同的线程在同一个线程上,那么上述行为是否相同?

  3. 如果变量x是自定义类型而不是内置类型怎么办?

  4. 当变量x将被构造并且被破坏时?

  5. sizeof(Widget)和这些变量之间有任何关系吗?

  6. C++标准中定义了哪些方面,哪些方面没有?

任何其他考虑因素,例如"需要知道"该主题?也许任何人都可以提供好书参考(例如"Effective C++ ..")来阅读更多内容?

c++ namespaces

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

如何在C++中正确地转换结构

请考虑以下代码摘录:

typedef struct tagTHREADNAME_INFO {
    DWORD dwType;
    LPCTSTR szName;
    DWORD dwThreadID;
    DWORD dwFlags;
} THREADNAME_INFO;

const THREADNAME_INFO info = { 0x1000, threadName, CurrentId(), 0};

::RaiseException(kVCThreadNameException, 0,
    sizeof(info) / sizeof(ULONG_PTR),
    (ULONG_PTR*)&info);
Run Code Online (Sandbox Code Playgroud)

如何使用C++样式转换正确地转换为ULONG_PTR*?

ps它是平台相关的代码.

c++ casting

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