Re[2]: Максимальный размер типа во время компиляции
От: swingus  
Дата: 28.10.15 23:13
Оценка: 2 (1)
Если на C++ 14, то можно без рекурсии.


#include <iostream>
#include <algorithm>
#include <initializer_list>
 
using namespace std;
 
struct A
{
    char field_a;
 
    A(): field_a('a') {}
};
 
struct B
{
    double c;
 
    B() : c(10.0) {}
};
 
struct D
{
    int buffer[100];
 
    D()
    {
    }
};
 
template <typename... Types>
constexpr auto get_sizes() 
{
    return initializer_list<size_t>{ sizeof(Types)... };
}
 
int main()
{
    cout << max( get_sizes<A, B, D>() ) << endl; 
}


Правда, я попробовал на VC++ онлайн компиляторе, код скомпилировался, но выдал какую-то ерунду. А вот на GCC всё OK.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.