C++11, §5.3.3 ¶6
The result of
sizeof
andsizeof...
is a constant of typestd::size_t
. [ Note: std::size_t is defined in the standard header (18.2). — end note ]
You can also do a quick check:
#include <iostream> #include <typeinfo> #include <cstdlib> int main() { std::cout<<(typeid(sizeof(int))==typeid(std::size_t))<<std::endl; return 0; }
which correctly outputs 1
on my machine.
As @Adam D. Ruppe said in the comment, probably the compiler does not complain because, since it already knows the result, it knows that such “conversion” is not dangerous
Related Posts:
- How do sizeof(arr) / sizeof(arr[0]) work?
- push_back vs emplace_back
- C++ Fatal Error LNK1120: 1 unresolved externals
- Visual Studio debugger error: Unable to start program Specified file cannot be found
- push_back vs emplace_back
- General way of solving Error: Stack around the variable ‘x’ was corrupted
- Is the sizeof(some pointer) always equal to four?
- Already defined in .obj – no double inclusions
- IntelliSense: the object has type qualifiers that are not compatible with the member function
- Error “system” is ambiguous?
- error C2065: ‘cout’ : undeclared identifier
- How to install Visual Studio Build Tools 2010 on Visual Studio 2015 Community?
- error C2039: ‘string’ : is not a member of ‘std’, header file problem
- How to create a dynamic array of integers
- How to implement 2D vector array?
- What is the difference between g++ and gcc?
- What is the best way to use a HashMap in C++?
- What is the difference between float and double?
- How do I find the length of an array?
- C++ — expected primary-expression before ‘ ‘
- Using getline() with file input in C++
- g++ ld: symbol(s) not found for architecture x86_64
- ‘g++’ is not recognized as an internal or external command, operable program or batch file
- How do I convert a double into a string in C++?
- How to create timer events using C++ 11?
- How to concatenate two strings in C++?
- ‘g++’ is not recognized as an internal or external command, operable program or batch file
- Read file line by line using ifstream in C++
- Virtual/pure virtual explained
- error: redefinition of class
- Officially, what is typename for?
- How do I iterate over the words of a string?
- C++ Vector of pointers
- error: lvalue required as unary & operand
- Why doesn’t C++ have a garbage collector?
- How does ifstream’s eof() work?
- terminate called after throwing an instance of ‘std::invalid_argument’ what(): stoi
- How to find memory leak in a C++ code/project?
- invalid use of non-static member function
- Cannot open include file: ‘stdio.h’ – Visual Studio Community 2017 – C++ Error
- srand(time(0)) and random number generation
- How to convert integer to double implicitly?
- How do I tokenize a string in C++?
- Reverse Contents in Array
- Why would we call cin.clear() and cin.ignore() after reading input?
- Correct way to use cin.fail()
- Destructor for a linked List
- Why use a new call with a C++ ‘vector’?
- Identifier is undefined
- What are the most widely used C++ vector/matrix math/linear algebra libraries, and their cost and benefit tradeoffs?
- Insert object at index of vector c++
- Read whole ASCII file into C++ std::string
- Reading getline from cin into a stringstream (C++)
- How to make an array with a dynamic size? General usage of dynamic arrays (maybe pointers too)?
- Delete 2D array C++
- class not declared in scope – even though .h was included
- Best C/C++ Network Library
- How to check that an element is in a std::set?
- Best way to extract a subvector from a vector?
- How do malloc() and free() work?
- Call to implicitly deleted copy constructor in LLVM
- C++ Linked List Node with class
- What is the use of intptr_t?
- How does rhs work?
- error: expected unqualified-id before ‘.’ token //(struct)
- Base class undefined
- C++ – Assigning null to a std::string
- The program can’t start because libgcc_s_dw2-1.dll is missing
- C++ – Too Many Initializers for Arrays
- Reading string by char till end of line C/C++
- getline: identifier not found
- Colorizing text in the console with C++
- Show two digits after decimal point in c++
- error: invalid initialization of non-const reference of type ‘int&’ from an rvalue of type ‘int’
- CMake : C and CXX compiler identification is unknown Win10 CMakeGUI
- Error “Unterminated conditional directive” in cross-referencing headers
- C++ template – error: expected initializer before ‘<' token
- Why am I getting the “Expression is not assignable” error?
- template argument deduction/substitution failed, when using std::function and std::bind
- C++ Global variable declaration
- OpenMP set_num_threads() is not working
- Why should I use a pointer rather than the object itself?
- Call of overloaded function is ambiguous
- ‘cout’ does not name a type
- C++ Cannot call constructor directly in small example
- C++ compiler error c4430 “c++ doesnt support default int”
- Using OpenMP with clang
- C++ Destructors with Vectors, Pointers,
- How to get the MD5 hash of a file in C++?
- C++ Error: Expected a type specifier
- Where to declare/define class scope constants in C++?
- Friend methods error
- Does WPF Work with C++?
- Where can I find ‘winmm.lib’ (I’m using Visual Studio 2012)
- What is a `char*`?
- Does static constexpr variable inside a function make sense?
- “Incomplete type not allowed ” when creating std::ofstream objects
- Compiler error C4430: missing type specifier – int assumed [duplicate]
- ‘&’ : illegal operation on bound member function expression [duplicate]
- Multiple definitions of “Main”