On 9/3/05 9:56 AM, "Fujinobu Takahashi"
Hello Cory-san,
Thank you for your prompt advice for my basic question. I found same thing happens even when I use dynamic bitsets as member of struct.
I think you need to review your C++ syntax.
My original simple code: [SNIP] struct multi_bitsets{ dynamic_bitset<> db1(10,1ul); dynamic_bitset<> db2(10,2ul); }; [SNIP] multi_bitset_struct.org.cpp:9: error: expected identifier before numeric constant multi_bitset_struct.org.cpp:9: error: expected `,' or `...' before numeric constant multi_bitset_struct.org.cpp:9: error: ISO C++ forbids declaration of `parameter' with no type multi_bitset_struct.org.cpp:10: error: expected identifier before numeric constant multi_bitset_struct.org.cpp:10: error: expected `,' or `...' before numeric constant multi_bitset_struct.org.cpp:10: error: ISO C++ forbids declaration of `parameter' with no type [SNIP]
You can never initialize members of a struct/class in that fashion. You must use constructors: class multi_bitsets { public: multi_bitsets() : db1(10, 1ul), db2(10, 2ul) {} //... private: dynamic_bitset<> db1, db2; } Or you can initialize a simple struct/class at declaration time: struct test1 { int a, b }; //... int main() { test1 x = { 1, 4 }; //... } I forgot what restrictions, if any, are on that feature. If a class member is of static storage and of a built-in integral type, then you can do: class test2 { static unsigned const xx = 2u; //... } //... unsigned const test2::xx; // You still must do this! (I forgot if it works on "enum" too.)
------------------------------------------------------------------- And modified code with the initializer list suggested by Cory-san: [SNIP] struct multi_bitsets{ dynamic_bitset<> db1; dynamic_bitset<> db2; }; multi_bitsets():db1(10,1ul), db2(10,2ul){} [SNIP] multi_bitset_struct.cpp:14: error: expected unqualified-id before ')' token multi_bitset_struct.cpp:14: error: expected `,' or `;' before ':' token
Not modified enough. All members of a class must be declared in the class body, during or before a definition (if any). You cannot define an impromptu constructor (i.e. with no prior declaration). -- Daryle Walker Mac, Internet, and Video Game Junkie darylew AT hotmail DOT com