整数文字作为cpp中函数声明的参数

Integer literal as parameters of function declaration in cpp

我几乎熟悉 cc++ 编程。今天我在搜索函数声明时突然遇到 c++ 语言中的一个奇怪语法。
我写了下面的代码:

#include <iostream>
using namespace std;
int foo('3');
int bar(3);
int main(){
    
}

我从未见过将文字定义为函数参数!所以我预计在编译这个程序时会出现编译错误:

$ g++ file.cpp

但是编译没有问题!
所以我很想知道 int foo('3');int bar(3); 行的 含义 用法 是什么?

分别表示int foo = '3';int bar = 3;

但这并不完全等同,例如with 类 = 不允许 explicit 构造函数。