Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unable to print the value of nullptr on screen

Tags:

c++

c++11

I was reading about nullptr and doing workout on g++ and also on VS2010.

When I did

#include <iostream>
using namespace std;

auto main(void)->int
{
    int j{};    
    int* q{};   

    cout << "Value of j: " << j << endl; // prints 0
    cout << nullptr << endl;
    cout << "Value of q: " << q << endl; // prints 0

    return 0;
}

printing the value of nullptr on screen, g++ and VS gave compiler error. Is it not allowed to print the value of nullptr on screen?

like image 566
StackIT Avatar asked Feb 14 '14 06:02

StackIT


Video Answer


1 Answers

The pointer literal is the keyword nullptr. It is a prvalue of type std::nullptr_t.

Type nullptr_t should be convertible to T*, but compiler has no operator << for nullptr_t and don't know to which type you want to convert nullptr.

You can use this

cout << static_cast<void*>(nullptr) << endl;
like image 166
ForEveR Avatar answered Nov 02 '22 09:11

ForEveR