小编Vla*_*iev的帖子

是否存在vararg函数优先于可变参数模板的情况?

可变参数模板有很多优点,但有时候<cstdarg>应该使用C风格的可变参数函数(使用)吗?

c++ variadic-functions variadic-templates c++11

19
推荐指数
3
解决办法
1536
查看次数

提升 asio io_service 与 io_context

我正在使用带有 C++ 的 boost asio 库。我发现 io_service 和 io_context 有相似之处。例如,两者都有方法运行和其他方法。有人可以请详细说明这两个类之间的差异(如用法、概念思想、结构差异等)

c++ boost boost-asio

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

Inno Setup 中自定义页面的顺序

我正在使用 Inno Setup。我想要两个自定义页面,例如:

var
 PasswordEdit: TPasswordEdit;
 UserEdit: TEdit;
 Page: TWizardPage;
 Page2: TWizardPage;
...
 Page := CreateCustomPage(wpWelcome, 'Page1', '');
 Page2 := CreateCustomPage(wpWelcome, 'Page2', '');
Run Code Online (Sandbox Code Playgroud)

而是Page2出现在面前Page。这是创建更多自定义页面的正确方法吗?

inno-setup pascalscript

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

为什么在类主体中无法初始化静态常量字符串成员

我使用的是 c++ 14。我需要在我的类中使用静态常量字符串。但是当我写

class myClass
{
     static constexpr const std::string S="aa";
}
Run Code Online (Sandbox Code Playgroud)

它不编译。编译器(g++)的结果是

class myClass
{
     static constexpr const std::string S="aa";
}
Run Code Online (Sandbox Code Playgroud)

如果我用字符指针写它,如:

class myClass
{
     static constexpr const *char S="aa";
}
Run Code Online (Sandbox Code Playgroud)

它被编译。

我知道字符串可以在课外初始化。我的问题是为什么不编译第一个变体,第二个变体。我想知道标准怎么说。

c++ c++14

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

设置int指针的向量,指向int的向量的元素

我尝试将指针向量设置为另一个向量的元素

vector<int> vecInt;
vector<int*> vecPInt;
int main()
{
    vecInt.push_back(1);
    vecPInt.push_back(&vecInt[0]);
    vecInt.push_back(1);
    vecPInt.push_back(&vecInt[1]);
    for(auto v:vecInt)
    {
        cout<<v<<"\n";
    }
    for(auto v:vecPInt)
    {
       cout<<*v<<"\n";
    }
Run Code Online (Sandbox Code Playgroud)

}

但结果是

1

1

11717664

1

还有另一种方法可以做到这一点.但为什么在这种情况下这是行为?

c++ pointers vector

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

为什么此MOVSS指令使用相对RIP寻址?

我在反汇编程序(浮点逻辑c ++)中找到了以下汇编代码。

  842: movss  0x21a(%rip),%xmm0 
Run Code Online (Sandbox Code Playgroud)

我知道,当进程rip将一直为842且此0x21a(%rip)将为const。使用该寄存器似乎有些奇怪。

我想知道使用rip相对地址代替其他寻址有什么好处。

x86 assembly x86-64 disassembly addressing-mode

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

为什么 auto 不检测函数的引用类型

我用方法创建了一个类,它返回对成员的引用(封装不好)。我正在使用自动重新调整功能

class classA
{
    public:
    classA(classA & rhs)
    {
        cout<<"copy constr A"<<endl;
    };
    classA() = default;
};

class classB
{
    private:
    classA obA;
    public:
        classA& getRefA(){return obA;}
};

int main()
{
    classB obB;

    auto ob = obB.getRefA();
 }
Run Code Online (Sandbox Code Playgroud)

结果是复制构造A

我知道 auto 不会检测函数的引用。自动检测是否只检测类型而不参考?

c++ reference auto c++14

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

功能包装避免重复

我有第三方C库.我想在c ++中使用它每个函数都返回错误代码.当我必须使用它时,我必须编写如下代码:

int err;
err=libFun1(....);
check(err);
err=libFun2(....);
check(err);
Run Code Online (Sandbox Code Playgroud)

我想包装这个函数,避免代码重复检查.每个librabry函数都有不同的数字参数.什么是一个好的设计呢?

c c++ wrapper

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