C++17Generic ProgrammingLearn C++

Helpers for Generic C++ Code Accessing Container Properties

In addition to Helpers for Generic C++ Code Iterating Over Sequences the C++17 Standard Library provides the following helpers for writing generic code:

Function std::data() provides access to the underlying raw data of:

  • containers that have a member function data();
  • instances of type type std::initializer_list<T>;
  • built-in arrays.

Function std::empty() yields true if either container or an instance of type std::initializer_list<T> is empty. For built-in arrays the returned value is always false because built-int arrays cannot be zero-sized according to the standard.

Function std::size() returns a number of elements of:

  • containers which are provides an iterator interface;
  • built-in arrays.

Please note, that std::size() eliminates the need of use the conservative way to calculate the number of elements of built-in arrays, i.e.:

Finally, please note, that being used with containers these functions just calls the corresponding member functions: data(), empty() and size(). Thus, for instance, std::size() does not work with instances of type std::forward_list<T> since this class doesn’t have the member function size() by design.


Oh hi there 👋
It’s nice to meet you.

Sign up to receive awesome C++ content in your inbox, every day.

We don’t spam! Read our privacy policy for more info.

Related posts
C++ComponentsDatabaseIntroduction to C++Language FeatureLearn C++

Get To Know The Powerful C++ Data Bindings In Windows Apps

C++Introduction to C++Language FeatureLearn C++

How to Create a New Windows FMX Static Library In C++

C++C++11C++14C++17Introduction to C++Learn C++

How To Use C++ front() And back() Methods Of Vectors

C++Generic ProgrammingIntroduction to C++Language FeatureLearn C++

5 Things You Need To Know About Optimization In C++ Builder