小编JET*_*ETM的帖子

C++ 11基于范围的指针向量

我刚刚编译了GCC 4.6.0,我想尝试新功能,从基于范围的for循环开始.
我想改变的第一个循环是迭代std ::指针向量.我更改了代码以使用新语法,但它没有编译.

我试图用另一个替换for循环,它是在一个std :: vector of structs上,它编译并运行完美.

这是一个简短的测试代码,向您展示我的问题:

#include <vector>
#include <iostream>

int main()
{
    std::vector< int > values;

    values.push_back(2);
    values.push_back(5);
    values.push_back(8);
    values.push_back(13);
    values.push_back(17);

    for (int &n : values)
    {
        std::cout << n << "\n";
    }

    std::vector< int* > pointers;

    pointers.push_back(new int(2));
    pointers.push_back(new int(5));
    pointers.push_back(new int(8));
    pointers.push_back(new int(13));
    pointers.push_back(new int(17));

    for ((int*) &p : values)
    {
        std::cout << (*p) << "\n";
    }

    for( unsigned int i = 0; i < pointers.size(); ++i)
    {
        delete pointers[i];
    }

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

c++ gcc pointers

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

如何检查是否定义了类似函数的宏?

我的代码中有一行看起来像这样:

#ifndef MACRO(n)
Run Code Online (Sandbox Code Playgroud)

这实际上适用于大多数编译器.但是,这在Solaris上失败,因为官方语法是# ifndef identifier new-line groupopt标识符中不允许使用括号.

检查此宏是否已定义的正确方法是什么?

c++ c-preprocessor

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

C++中的DLL导出和继承

我试图从这样的DLL导出一个类及其基类:

#ifdef MY_EXPORTS
    #define DECLSPEC_TEST __declspec(dllexport)
#else
    #define DECLSPEC_TEST __declspec(dllimport)
#endif


class DECLSPEC_TEST BaseClass
{
  // stuff.
};

class DECLSPEC_TEST DerivedClass : public BaseClass
{
  // This class only has a constructor which initializes the class differently.

};
Run Code Online (Sandbox Code Playgroud)

但我尝试在另一个DLL中使用此类,我不断收到错误:

error LNK2019: unresolved external symbol 
"__declspec(dllimport) public: __thiscall DerivedClass::DerivedClass(void)"
 (__imp_??0DerivedClass@@QAE@XZ) referenced in function 
"public: __thiscall SomeOtherClass::SomeOtherClass(void)" (??0SomeOtherClass@@QAE@XZ)  
Run Code Online (Sandbox Code Playgroud)

我还用PE Explorer查看了我的导出DLL,我在导出列表中看不到派生类.

当我尝试在我的其他DLL中使用基类时,它工作正常.

我究竟做错了什么?

c++ dll inheritance export

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

逗号而不是分号,为什么这个语句在C++中没有给出语法错误?

#include <iostream>
using namespace std;

int main() {
    // your code goes here
    int a  = 10;
    printf("\n a = %d", a),int(3);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

此代码在C++(http://ideone.com/RSWrxf)中运行良好,但同一printf行在C中不起作用.为什么它可以工作C++?我对两个语句和C/C++编译差异之间允许的逗号感到困惑.

c++ syntax

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

ffmpeg在特定时间混合音频

我想将2个音频文件混合在一起 - 一个文件长度为2分钟,另一个文件长度为10秒.我希望两个文件混合,这样两种声音仍然可以听到.我希望这个10秒的剪辑准确地在30秒内进入10秒,所以它将以40秒结束.

我知道如何使用ffmpeg将2个音频文件混合在一起

ffmpeg -i input.mp3 -i input2.mp3 -filter_complex amerge -c:a libmp3lame -q:a 4 output.mp3
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何在特定时间开始这10秒钟的声音.

audio mp3 ffmpeg

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

Singleton-python,只需要一个对象的情况

我有一种情况,我必须确保我只有一个对象.我正在考虑实现单身如下:

class One_Of_a_Kind:
    def __init__(self):
        self.do_some_setup()


class One_Creator:
    Only_One = None
    def __new__(cls, *args, **kwargs):
        if One_Creator.Only_One:
            return One_Creator.Only_One
        else:
            One_Creator.Only_One = One_of_a_Kind()
            return One_Creator.Only_One
Run Code Online (Sandbox Code Playgroud)

由于我正在阅读很多关于单身人士(利弊)的内容,所以我对实施这段代码犹豫不决.我想知道在需要(或强制)只有一个特定类别的对象的情况下使用它是否合适和/或被认为是好的做法.

是否有更好的方法来实现同样的事情?

python design-patterns

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

高级Jira查询过滤

如何为一组选定的受让人包含一个项目的"所有问题",还包括Jira查询中同一受让人的其他项目中的错误?

jira filter jql

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

如何使用API​​检查项目的质量门状态?

一旦质量门在SonarQube中失败,我就需要为项目触发HipChat通知.是否有REST API用于检查项目的质量门状态.我找不到它下api/quailty_gateapi/projects.

我也对其他触发hipChat通知的方法持开放态度.

sonarqube hipchat sonarqube5.3 sonarqube-api

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

为什么g ++ 4.9.0默认有std :: isnan?

我的理解是该功能std::isnan仅从C++ 11开始提供.此外,除非特别说明,否则g++使用-std=gnu++98.

那为什么这会编译?

>> cat test.cpp
#include <cmath>
int main(int argc, char** argv)
{
    return std::isnan(0);
}

>> g++ test.cpp
Run Code Online (Sandbox Code Playgroud)

是否有一个标志来取出该功能<cmath>

c++ g++ c++11 g++4.9

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