小编scd*_*dmb的帖子

双模板<>语句

有这样的功能定义:

template<>
template<>
void object::test<1>()
{
}
Run Code Online (Sandbox Code Playgroud)

什么意思是有双模板<>?

编辑:

我提取了对此示例有效的代码:

#include <iostream>

template <class U>
class A {

    template <int n>
    void test() {

    }
};

template <class T>
class B {
public:
    typedef A<T> object;
};

typedef B<int>::object object;

template<>
template<>
void object::test < 1 > () {
}

int main() {
    return 0;
} 
Run Code Online (Sandbox Code Playgroud)

此代码在g ++下编译.

资料来源:TUT测试框架

c++

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

赋值运算符继承

有这个代码:

#include <iostream>

class Base {
public:
    Base(){
        std::cout << "Constructor base" << std::endl;
    }
    ~Base(){
        std::cout << "Destructor base" << std::endl;
    }
    Base& operator=(const Base& a){
        std::cout << "Assignment base" << std::endl;
    }
};

class Derived : public Base{
public:

};

int main ( int argc, char **argv ) {
    Derived p;
    Derived p2;
    p2 = p;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

g ++ 4.6编译后的输出:

Constructor base
Constructor base
Assignment base
Destructor base
Destructor base
Run Code Online (Sandbox Code Playgroud)

为什么要调用基类的赋值运算符呢?据说赋值运算符不是继承的吗?

c++ inheritance

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

在商业产品的LGPL许可证上使用Python模块

在LGPL许可证中,我可以使用未经修改的链接代码在商业,封闭的产品中,而无需将产品许可证更改为LGPL.商业产品的LGPL许可证上的Python模块(*.py)怎么样?它被视为链接代码吗?

python licensing

18
推荐指数
3
解决办法
8155
查看次数

C++中的数组索引类型

C++编程语言中的数组索引的类型是什么?例如在这样的声明中:

int tab[5];
Run Code Online (Sandbox Code Playgroud)

什么类型5被转换?或者它可能只是简单的int?

c++ arrays

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

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

模板函数中使用的类的前向声明不是由clang ++编译的

有这个代码:

class A;

template <class T>
void fun() {
   A a;
}

class A { 
public: 
   A() {  } 
};

int main() { 
   fun<int>(); 
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

g ++ 4.5和g ++ 4.7编译时没有错误.但是clang ++ 3.2(trunk)给出了这个错误:

main.cpp:5:6: error: variable has incomplete type 'A'
   A a;
     ^
main.cpp:1:7: note: forward declaration of 'A'
class A;
      ^
Run Code Online (Sandbox Code Playgroud)

根据C++标准,哪个编译器是正确的?

c++ templates g++ forward-declaration clang++

12
推荐指数
2
解决办法
2080
查看次数

__kwdefaults__是一个函数对象属性有什么用?

函数对象具有属性__defaults____kwdefaults__.我看到,如果一个函数有一些默认的参数,然后它们被放在一个元组__defaults____kwdefaults__None.何时使用属性__kwdefaults__

python python-3.x

12
推荐指数
2
解决办法
1756
查看次数

更改基本类型和类类型的返回值

有这样的代码:

#include <iostream>
#include <string>

int returnnumber() { return 2; }
std::string returntext() { return "siema"; }

int main() {

    std::cout << (returntext() += "cze") << std::endl; // siemacze
    //std::cout << (returnnumber() += 2) << std::endl; error: lvalue required as left operand of assignment

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

为什么可以更改std :: string的返回值,而不是int?

c++

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

指令长度可变时的指令解码

以下是一些说明及其相应的编码:

55                      push   %ebp
89 e5                   mov    %esp,%ebp
83 ec 18                sub    $0x18,%esp
a1 0c 9f 04 08          mov    0x8049f0c,%eax
85 c0                   test   %eax,%eax
74 12                   je     80484b1 <frame_dummy+0x21>
b8 00 00 00 00          mov    $0x0,%eax
85 c0                   test   %eax,%eax
74 09                   je     80484b1 <frame_dummy+0x21>
c7 04 24 0c 9f 04 08    movl   $0x8049f0c,(%esp)
Run Code Online (Sandbox Code Playgroud)

今天的微处理器通常是32位或64位,我猜他们通常以4字节或8字节的块从内存中读取数据.但是,指令可以具有可变长度.微处理器如何解码这些指令,为什么它们的长度不一致以便于实现?

assembly microprocessors

11
推荐指数
2
解决办法
6471
查看次数

目标文件的objdump输出中的标志

在某些目标文件上有objdump的输出:

$ objdump -h main.o

main.o:     file format elf32-i386

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         0000000b  00000000  00000000  00000034  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000000  00000000  00000000  00000040  2**2
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000000  00000000  00000000  00000040  2**2
                  ALLOC
  3 .note.GNU-stack 00000000  00000000  00000000  00000040  2**0
                  CONTENTS, READONLY, CODE
Run Code Online (Sandbox Code Playgroud)

这些标志CONTENTS,ALLOC,LOAD等是什么意思?

linux elf objdump

11
推荐指数
2
解决办法
7095
查看次数