小编Ste*_*ult的帖子

vs 2013和GCC之间的全局函数和模糊参数NULL与char*

我试图理解当前C++ 14标准关于解决模糊函数调用的内容,主要是因为我看到了GCC 4.9.1和Visual Studio 2013更新3之间的区别

这是代码(MS和GCC完全相同):

#include <iostream>
using namespace std;

void f(char *str, int chars) { cout << "f(char*, int)"; }
void f(char *first, char *second) { cout << "f(char*, char*)"; }

int main()
{
    char *hello = "Hello, World";
    f(hello, NULL); //which f gets called?

    char c; cin.get(c);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Visual Studio调用f(char*, int)使用默认vs标志GCC给我一个编译器错误:调用重载'f(char*&,NULL)'是不明确的.gcc只使用-std=c++11标志.

c++ gcc visual-c++ c++11

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

标签 统计

c++ ×1

c++11 ×1

gcc ×1

visual-c++ ×1