小编Cry*_*Man的帖子

C++ 中 extern "C" 的调用约定是什么?

标题确实准确描述了我的要求。

extern "C" int foo( int bar ) { return bar; }
Run Code Online (Sandbox Code Playgroud)

从我一直在测试的内容来看,它似乎不是__cdecl, __stdcall, __fastcall,而且显然不是__thiscall

什么是约定以及它如何运作?

谢谢。

c c++ windows

6
推荐指数
2
解决办法
2553
查看次数

std ::具有相同基类的类的变体

我不完全理解变体的用法,也许有人可以清理我做错了什么(可能是我的做法).

让variant对象是两个类的_Types,都继承同一个类.

class base
{
public:
    int foo;
};
class a: public base
{
    int bar;
};
class b: public base
{
    float bar;
};

byte variant_id = 0; // 0 for class A, 1 for class B
std::variant< base, a, b > variant;
Run Code Online (Sandbox Code Playgroud)

以下是我使用变体的方法:

void func( )
{
    auto& _variant = std::get< base >( variant ); // ideally would be = variant_id ? std::get< b >( variant ) : std::get< a >( variant )
    _variant.foo = 20;

    if ( …
Run Code Online (Sandbox Code Playgroud)

c++ variant c++17

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

标签 统计

c++ ×2

c ×1

c++17 ×1

variant ×1

windows ×1