小编tom*_*myk的帖子

哪个内存区域是异常类实例创建的?

我找不到在异常处理期间创建的异常类实例的信息?在哪个内存区域(堆栈,堆,静态存储等)?由于堆栈展开,我认为它不在堆栈中...

c++ exception

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

在Android和桌面上使用Java进行SVG处理

我正在尝试编写一个Java应用程序,它将生成基于XML文件的SVG图像.该应用程序还应该能够显示SVG文件.我的应用程序应该在Android平台和台式机上运行.我读过有关Swing + Batik但是afaik它不适用于Android.实现这一目标的最佳图书馆是什么?

java svg android

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

Scala相当于函数中的C++静态变量

我对Scala很新,偶然发现以下问题:

什么是Scala相当于函数的静态变量?

void foo()
{
    static int x = 5;
    x++;
    printf("%d", x);
}
Run Code Online (Sandbox Code Playgroud)

编辑:

我想要实现的是一种函数调用计数器 - 我想检查我的函数执行了多少次,同时限制了这个计数器的可见性,以便它不能从外部修改.

c++ scala static-variables

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

__COUNTER__宏可移植吗?

我有一段使用__COUNTER__宏为变量生成唯一名称的代码。

此代码可移植吗?我知道GCC和MSVS支持它。什么是其他编译器?是由标准定义的宏(据我所知,在C ++ 14之前不是)。

c++ macros c-preprocessor

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

什么是英特尔IPP库中的外部线程?

我正在阅读英特尔针对C和C++ 的集成性能基元库.他们提到外部线程作为新功能之一.

外部线程的新API比内部线程更有效.资源

什么是外部线程以及它与std::threadC++有什么关系?

c++ multithreading intel-ipp

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

fopen问题 - 打开的文件太多了

我有一个在Win XP上运行的多线程应用程序.在某个阶段,其中一个线程无法使用fopen函数打开现有文件._get_errno函数返回EMFILE,这意味着打开的文件太多.没有更多的文件描述符可用.我的平台的FOPEN_MAX是20._getmaxstdio返回512.我用WinDbg检查了这个,我看到大约有100个文件是打开的:

788 Handles
Type            Count
Event           201
Section         12
File            101
Port            3
Directory       3
Mutant          32
WindowStation   2
Semaphore       351
Key             12
Thread          63
Desktop         1
IoCompletion    6
KeyedEvent      1
Run Code Online (Sandbox Code Playgroud)

fopen失败的原因是什么?


编辑:

我写了简单的单线程测试应用程序.这个程序可以打开510文件.我不明白为什么这个应用程序可以打开更多文件,然后多线程应用程序.可能是因为文件句柄泄漏了吗?

#include <cstdio> 
#include <cassert> 
#include <cerrno> 
void main() 
{ 
    int counter(0); 

    while (true) 
    { 
        char buffer[256] = {0}; 
        sprintf(buffer, "C:\\temp\\abc\\abc%d.txt", counter++); 
        FILE* hFile = fopen(buffer, "wb+"); 
        if (0 == hFile) 
        { 
            // check error code 
            int err(0); 
            errno_t ret = _get_errno(&err); 
            assert(0 == …
Run Code Online (Sandbox Code Playgroud)

c++ windows fopen file-descriptor

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

为什么不允许"重载函数的第二个C链接"?

我将我的C++ DLL转换为C dll:

#ifdef __cplusplus
    extern "C" {
#endif

MY_EXPORT int  my_func();
MY_EXPORT void my_func(int n);

#ifdef __cplusplus
    }
#endif
Run Code Online (Sandbox Code Playgroud)

没有extern C声明,一切都很好.我得到了这个宣言

错误C2733:不允许重载函数'my_func'的第二个C链接

为什么不允许从C风格的dll导出重载函数?

c c++ dll extern

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

扭转数字的最有效方法

我正在寻找一种有效的算法来反转数字,例如

输入: 3456789

产量: 9876543

在C++中,有很多选项可以使用移位和位掩码,但最有效的方法是什么?

我的平台:x86_64

数字范围:XXX - XXXXXXXXXX(3 - 9位)

编辑 我的输入的最后一位数字永远不会为零,因此没有前导零问题.

c++ algorithm optimization performance

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

Specs2和scalacheck - 必须通过问题

我收到not found: value pass以下代码段的错误.
我是否会错过任何导入或此代码对specs2无效

import org.specs2.mutable.Specification
import org.specs2.ScalaCheck
import org.scalacheck.{Prop, Gen}

class TestSpec extends Specification with ScalaCheck {
  "Calling test spec" should {
    "always pass" in {  
      val prop = Prop.forAll((a:Int) => true)
      prop must pass
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

scala scalacheck specs2

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

优雅而有效的方法来修改std :: array的所有元素

我想为存储在std :: array容器中的所有数据添加一定的偏移量:

std::array<double, 256> data;
ReadData(data);

// apply data offset
const double OFFSET = 0.123;
data += OFFSET;
Run Code Online (Sandbox Code Playgroud)

它可以用例如std :: for_each和lambda完成.

std::for_each(data.begin(), data.end(), [=OFFSET](auto& n){ n += OFFSET; });
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更优雅,更简洁,更有效的方法来实现这一目标.

arrays foreach lambda c++11

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