Newsgroup: it.comp.lang.c++
Titolo: Per chi ha "static_assert.hpp"

Mi compilate il codice seguente e postate il messaggio del vostro 
compilatore?
Di più compilatori conosco l'esito, meglio è. Postate pure l'intero 
messaggio (non dovrebbe essere lungo).
=================================================================
#include <climits>
#include <cwchar>
#include <boost/static_assert.hpp>
namespace my_conditions {
    BOOST_STATIC_ASSERT(3*6 == 24);
}
void main()
{
}
=================================================================
Kiuhnm

 Kiuhnm
Ecco qua:
[C++ Error] Prova1.cpp(6): E4451 Stupid namespace name
[C++ Error] Prova1.cpp(8): E6980 Too many uppercase characters: compiler 
not deaf, use lowercase
[C++ Error] Prova1.cpp(12): E1433 Function main() is too void

 
ROTFL
Cos'è, il nipote dell'MPW?
http://ifaq.wap.org/computers/compilererrors.html

 Kiuhnm
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
ASSERT.CC:
Error E2209 ASSERT.CC 3: Unable to open include file 'boost/static_assert.hpp'
Error E2303 ASSERT.CC 7: Type name expected
*** 2 errors in Compile ***
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
cl /EHsc
   /Ox
   /W4
ASSERT.cc
ASSERT.CC(3) : fatal error C1083: Cannot open include file: 
'boost/static_assert.hpp': No such file or directory
GCC 4.01 (DJGPP)
ASSERT.cc:3:35: error: boost/static_assert.hpp: No such file or directory 
(ENOENT)
ASSERT.cc:13:2: warning: no newline at end of file
ASSERT.cc:7: error: expected constructor, destructor, or type conversion 
before '(' token
ASSERT.cc:11: error: '::main' must return 'int'
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg
The EMG Music page:         
http://www.emagsoftware.it/emgmusic
 

 ASSERT.cc:11: error: '::main' must return 'int'
Purtroppo il VC 8 non mi segnala l'errore.
Per fortuna che doveva essere più aderente allo standard!
Comunque non hai le librerie boost, ma grazie lo stesso per il tuo tempo.
Kiuhnm

 Non hai le librerie boost!
Ah, scusa. Qual'è il modo più semplice e rapido per dotare questi tre 
compilatori delle librerie boost?


 compilatori delle librerie boost?
Non ti spaventare, ma le librerie boost occupano 1 GB quindi il building 
richiede un po' di tempo. Il file da scaricare invece occupa solo 10 MB.
Qui trovi tutto:
http://www.boost.org/more/getting_started.html
Praticamente devi scaricare il file delle librerie per la tua 
piattaforma /e/ l'utility bjam (Boost.Jam). Estrai l'archivio in 
DIR_DI_TUA_SCELTA e copia bjam.exe in DIR_DI_TUA_SCELTA.
Vai in DIR_DI_TUA_SCELTA quindi scrivi
bjam "-sTOOLS=gcc" stage
o analogo a seconda del tuo compilatore.
Le variabili ambientali dovrebbero essere inizializzate in modo da 
indicare la dir d'installazione del compilatore. Se così non è, puoi 
usare altri parametri per specificare le directory direttamente in bjam.
bjam dovrebbe creare una nuova dir contenente tutti gli header e le 
sotto-librerie. Forse ti conviene compilarle col compilatore che ritieni 
più efficiente. Spero che una volta installate vadano bene con tutti e 
tre :)
Kiuhnm

 richiede un po' di tempo. Il file da scaricare invece occupa solo 10 MB.
Un giga cosa? I binari delle lib o il malloppo dei file sorgente? O_O
Non so cosa fanno le boost, ma da una libreria che occupa un giga intero 
di binari, di cose me ne aspetto proprio tante...

 di binari, di cose me ne aspetto proprio tante...
http://www.boost.org/libs/libraries.htm
Kiuhnm

 =================================================================
(boost 1.33.0. g++ 4.0.2)
MLO@mlinux 22 $ g++ -std=c++98 -pedantic -W -Wall -I/usr/soft/boost/include -o bar bar.cxx && ./bar
bar.cxx:7: error: invalid application of 'sizeof' to incomplete type 'boost::STATIC_ASSERTION_FAILURE<false>' 
bar.cxx:11: error: '::main' must return 'int'
MLO@mlinux 23 $ 
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy              ROT13: 
ybe...@cq.vasa.vg

 bar.cxx:11: error: '::main' must return 'int'
Argh... il VC 8 non me lo segnala e tra linguaggio D, c# e c++ faccio un 
po' di confusione.
Kiuhnm

 }
Borland C++ 5.6.4 for Win32 Copyright (c) 1993, 2002 Borland
static_assert.cpp:
Error E2450 static_assert.cpp 7: Undefined structure
'boost::STATIC_ASSERTION_FAILURE<0>'
Error E2109 static_assert.cpp 7: Not an allowed type
*** 2 errors in Compile ***
Ciao,
Nicola

 *** 2 errors in Compile ***
Perfetto.
Kiuhnm

 
http://www.boost.org/more/getting_started.html
Grazie. Per il momento declino...


Kiuhnm wrote:

Premettendo che se invece di 24 scrivo 18 non ho nessun errore, con il 
suddetto programma ottengo:
Microsoft (R) 32-bit C/C++ Optimizing Compiler versione 13.10.3077 per 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
static_assert.cpp
static_assert.cpp(7) : error C2027: utilizzo di tipo non definito 
"boost::STATIC_ASSERTION_FAILURE<x>"
         with
         [
             x=false
         ]
         static_assert.cpp(7): vedere il riferimento all'istanza 
"boost::STATIC_ASSERTION_FAILURE<x>" del template di classe in corso di 
compilazione
         with
         [
             x=false
         ]
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila

 suddetto programma ottengo:
:)
Kiuhnm


Infatti te ne puoi aspettare veramente tante.
Comunque per usare static_assert non c'é niente da compilare.
-- 
         Giuseppe "Cowo" Corbelli ~\/~ My software: 
http://cowo.yoda2000.net
-<! Non c'e' niente da dire in proposito. Tutto quello che uno deve fare e'
   colpire i tasti giusti al momento giusto, e lo strumento suona da solo. !>-
                                 J.S. Bach