标签: function-signature

在C++中使用默认参数的函数指针

C++如何处理与具有默认参数的函数相关的函数指针?

如果我有:

void foo(int i, float f = 0.0f);
void bar(int i, float f);


void (*func_ptr1)(int);
void (*func_ptr2)(int, float);
void (*func_ptr3)(int, float = 10.0f);
Run Code Online (Sandbox Code Playgroud)

哪个函数指针可以用于哪个函数?

c++ function-pointers default-parameters function-signature

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

是否有工具为任意非托管DLL生成P/Invoke签名?

我偶然发现了一个为Microsoft自己的非托管DLL生成P/Invoke签名的工具:PInvoke Interop Assistant

是否有类似的工具将为第三方非托管DLL生成P/Invoke签名?

或者,任何方式将第三方DLL提供给PInvoke Interop Assistant

编辑:我试图解决的实际问题

.net c# pinvoke unmanaged function-signature

34
推荐指数
4
解决办法
2万
查看次数

如何比较两个函数的签名?

有没有办法检查两个函数是否具有相同的签名?例如:

int funA (int a, int b);
int funB (int a, int b);
float funC (int a, int b);
int funD (float a, int b);
Run Code Online (Sandbox Code Playgroud)

在此示例中,funAand funB是应该返回的功能的唯一组合true

c++ function c++-standard-library function-signature c++17

22
推荐指数
3
解决办法
974
查看次数

多个const限定符的含义是什么?

码:

const char* const* const* foo(int bar);
Run Code Online (Sandbox Code Playgroud)

我已经看过双锥体,之前也阻止了指针的修改.我第一次见到生命中的三重常数.想知道它的用途是什么.

c const declaration function-signature

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

如何在*.inl文件中的模板类中定义模板函数

我在*.hpp文件中编写模板声明,并在*.hpp文件中链接*.inl文件中的"定义"

像这样:

//*.hpp
template <typename T1, typename T2>
class SomeClass
{
public:
    void someMethod();
};

//*.inl
template <typename T1, typename T2>
void SomeClass<T1, T2>::someMethod()
{
}
Run Code Online (Sandbox Code Playgroud)

但如何在*.inl文件中的模板类中编写额外的模板化方法?

//*.hpp
template <typename T1, typename T2>
class SomeClass
{
public:
    void someMethod();

    template <typename E>
    void extraTypedMethod(E & e);
};

//*.inl
template <typename T1, typename T2>
void SomeClass<T1, T2>::someMethod()
{
}

//how can I here define extraTypedmethod?
Run Code Online (Sandbox Code Playgroud)

c++ templates function-signature

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

一个未命名的函数参数可以有一个默认值吗?

以下代码在C++中是否合法?

void f(void* = 0)
{}

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

C++标准的哪一页说明这种用法是合法的?

c++ function default-parameters function-signature c++11

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

为什么在函数名之前返回类型?

新的C++ 11标准添加了一个带有尾随返回类型的新函数声明语法:

// Usual declaration
int foo();

// New declaration
auto foo() -> int;
Run Code Online (Sandbox Code Playgroud)

此语法的优点是可以推导返回类型,如下所示:

template<class T, class U>
auto bar(T t, U u) -> decltype(t + u);
Run Code Online (Sandbox Code Playgroud)

但是为什么返回类型首先放在函数名之前?我想,一个答案是在那个时候不需要这种类型的演绎.如果是这样,假设一种新的编程语言是否有理由不使用尾随返回类型?

c++ language-design return-type function-signature c++11

10
推荐指数
2
解决办法
957
查看次数

必需参数 $xxx 跟随可选参数 $yyy

Deprecated: Required parameter $xxx follows optional parameter $yyy in...
Run Code Online (Sandbox Code Playgroud)

自从升级到 PHP 8.0 后,在运行这样的代码时会抛出这个错误:

function test_function(int $var1 = 2, int $var2) {
    return $var1 / $var2;
}
Run Code Online (Sandbox Code Playgroud)

这在过去的 PHP 版本中没有问题。

php function-signature php-8

10
推荐指数
2
解决办法
2万
查看次数

如何声明两个函数将彼此的签名作为参数?

是否有可能模仿这样的事情:

typedef boost::function<void(A)> B;
typedef boost::function<void(B)> A;
Run Code Online (Sandbox Code Playgroud)

主要目标是能够编写这样的代码(在伪c ++中):

void a_(B b) {
  // ...
  b(a_);
}
void b_(A a) {
  // ...
  f(boost::bind(a, b_));
}

f(boost::bind(a_, b_));
Run Code Online (Sandbox Code Playgroud)

c++ boost argument-passing function-signature

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

三元运算符和函数签名

假设我有一个带有两个函数的C++类

class MyClass
{
    bool Foo(int val);
    bool Foo(string val);
}
Run Code Online (Sandbox Code Playgroud)

是否可以像这样使用三元运算符

MyClassInstance->Foo(booleanValue?24:"a string");
Run Code Online (Sandbox Code Playgroud)

并具有不同的函数MyClass调用取决于值booleanValue

c++ ternary-operator function-signature

9
推荐指数
4
解决办法
2134
查看次数