小编Dav*_*vid的帖子

模板类的方法是否暗示内联链接?

模板类的方法是否隐含了inline链接(不是在谈论内联优化),还是只是模板化的方法?

// A.h

template<typename T>
class A
{
public:
    void func1();                       //  #1
    virtual void func2();               //  #2
    template<typename T2> void func3(); //  #3
};

template<typename T>
void A<T>::func1(){}    //  #1

template<typename T>
void A<T>::func2(){}    //  #2

template<typename T>
template<typename T2>
void A<T>::func3<T2>(){}    //  #3
Run Code Online (Sandbox Code Playgroud)

以上所有案例都是inline[联系]吗?(我应该明确写inline任何一个)?

c++ templates inline linkage

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

参考成员是否良好做法?是const会员吗?

一位同事和我正在讨论const或参考成员是否是正确的事情.const和引用成员使类不可复制且不可移动,除非您编写自己的副本并移动忽略引用或const成员的运算符.我找不到一个忽略复制或移动某些成员只是因为它们是引用或const有意义的情况.

我认为拥有一个不可移动的对象很少在逻辑上是合理的,并且是一个选择,它只与该类是否是位置不变有关.不可复制的对象更常见,但是使类不可复制的选择与它是否拥有逻辑上不可复制的资源,如果它代表唯一的所有权等有关.我想不出一个理由的唯一特征是拥有引用或const成员是否意味着该类具有这些特征中的任何一种(不可复制或不可复制)

他们应该曾经被使用?应该是一个而不是另一个吗?有什么例子?

c++ const reference const-correctness

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

是否取消引用const_cast的指针ALWAYS会调用未定义的行为?

请参阅以下内容:

struct A
{
    std::string* get() const
    {
        //return const_cast<std::string*>(&m_pObj);
        return &const_cast<A*>(this)->m_pObj;
    }

    std::string m_pObj;
};
Run Code Online (Sandbox Code Playgroud)

被取消引用const_castthisUB?有没有时间从const_cast指针的常量取消引用结果不会调用UB?

(我知道上面的例子是不好的做法,糟糕的设计,并且可以用可变的方式解决 - 这不是重点)

c++

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

这个结果使用有什么问题?

auto lambda = [](){ return 7; };
std::result_of<decltype(lambda)()>::type val = lambda(); //  'val' : illegal use of type 'void'
Run Code Online (Sandbox Code Playgroud)

我收到错误:'val' : illegal use of type 'void'.为什么类型会解析为无效?

我可能弄错了什么result_of让我.我只想要任何我能传递的返回值std::function.

c++ type-traits c++11

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

外部参数是否已过时?

我很长一段时间的直觉和实践是尽可能避免使用params.我相信一个函数应该有一个逻辑目的,通常意味着一个返回类型(不返回多个东西).有时,返回多个东西是可取的(fe std :: map :: insert).我知道这可以作为一对/元组或输出参数来完成; 使用哪一个对我来说不那么重要.

偏好输出参数或返回值的概念,设计或性能原因是什么?

c++ design-patterns

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

是否始终声明特殊成员函数?

在标准的第12节中,每个特殊成员函数都有一组导致它implicitly declared as defaulted的规则和另一组导致的规则a defaulted [special member function to be] defined as deleted.

这使得(对我而言)当特殊成员函数没有用户声明的版本时,有3种可能的状态:声明和定义(defaulted),声明和未定义(deleted),以及未声明.这准确吗?如果是这样,有什么意义,而不是削减'未申报'选项?

*declared as defaulted似乎是一个错误,不应该被"定义"为违约吗?

c++ c++11

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

我应该使用什么条件来停止文件读取循环?

以下内容会导致错误,因为在读取超过文件末尾之前file.eof()显然不会返回true.我该怎么做?

std::ifstream file("something.stuff", std::ios::in|std::ios::binary);

while(!file.eof())
{
    double x, y, z;
    file.read(reinterpret_cast<char*>(&x), sizeof(x));  //  Do I need to check if(file) after every read?
    file.read(reinterpret_cast<char*>(&y), sizeof(y));
    file.read(reinterpret_cast<char*>(&z), sizeof(z));

    // Do something with xyz
}
Run Code Online (Sandbox Code Playgroud)

c++ file-io fstream

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

为什么isnan,isinf和isfinite返回int而不是bool?

isnan返回一个int ... nonzero value if arg is NaN, ?0? otherwise.为什么不回归布尔?这不是一些传统的东西,它是C++ 11的新功能.

c++ floating-point nan infinite c++11

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

如何调整 AVFrame 的大小?

你如何调整大小AVFrame?一世

这是我目前正在做的事情:

AVFrame* frame = /*...*/;

int width = 600, height = 400;
AVFrame* resizedFrame = av_frame_alloc();

auto format = AVPixelFormat(frame->format);

auto buffer = av_malloc(avpicture_get_size(format, width, height) * sizeof(uint8_t));

avpicture_fill((AVPicture *)resizedFrame, (uint8_t*)buffer, format, width, height);

struct SwsContext* swsContext = sws_getContext(frame->width, frame->height, format,
                                               width,         height,         format,
                                               SWS_BILINEAR,  nullptr,        nullptr,        nullptr);

sws_scale(swsContext, frame->data, frame->linesize, 0, frame->height, resizedFrame->data, resizedFrame->linesize);
Run Code Online (Sandbox Code Playgroud)

但毕竟这resizedFrames->widthheight仍然0时,AVFrame样子垃圾的内容,我得到一个警告,数据不对齐,当我打电话sws_scale。注意:我不想更改像素格式,也不想对其进行硬编码。

c c++ ffmpeg

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

在32位为什么地址空间限制为2 ^ 31?

在32位为什么地址空间限制为2 ^ 31?而不是2 ^ 32?

windows

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

C++术语消歧

我见过有资格在上下文cv修饰符使用:

非限定类型可以隐式转换为const

但是我也看到了限定用于表示任何嵌套类型:

MyClass :: MyNestedType x;


什么是语言标准中的其他同音词?

c++

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

为什么静态初始化顺序STILL未指定?

编译器是否具有生成所有全局变量的依赖关系树所需的所有信息,并为它们创建定义良好且正确的初始化顺序?我意识到你可以用全局变量写一个循环依赖 - 只做那种情况下未定义的行为 - 并且编译器可以警告并且可能有关它的错误.

通常这种情况的原因是它会给编译器制造商带来负担,或导致编译速度显着降低.我没有任何指标或证据表明在这种情况下这些都不是真的,但我倾向于两者都不是真的.

c++ global-variables static-initialization

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

如何将*argv []转换为isaplha中的字符串

编程C++的新手,并且在使用isaplha来重新计算并在参数为字母时显示错误消息时遇到问题.A,A1和以字母开头的字母数字的任何组合都会显示错误,1a将如何传递为不包含字母.我的代码如下.

for(int s = 1; s< argc; s++)
{
    if (isalpha(*argv[s]))
    {
        cout << "You have entered a letter, however letters are not valid arguments";
    }
    else etc... etc...
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激!

c++ argv

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