campo85 Posted January 31, 2018 Report Share Posted January 31, 2018 Hi all, I've a problem pretty stupid I guess. I have this piece of code that doesn't compile at all. I guess the documentation I'm reading is old and something has changed in the SystemC library because this code comes from the documentation: sc_logic mybit; sc_uint<8> myint; mybit = myint[7]; This is what I get: fde.cpp: In member function ‘void fde::cir_elab()’: fde.cpp:42:11: error: ambiguous overload for ‘operator=’ (operand types are ‘sc_dt::sc_logic’ and ‘sc_dt::sc_uint_bitref’) mybit = myint[7]; ^ I guess I have to do some typecasting but I'm still not really skilled with C++. I've seen I need to use the sc_bitref class, not clear how. Does someone know how to fix this ? Cheers, Stefano. Quote Link to comment Share on other sites More sharing options...
maehne Posted January 31, 2018 Report Share Posted January 31, 2018 The compiler has difficulties to decide which overload of the assignment operator it should use. You can help him by doing a static_cast<bool>(myint[7]). David Black and campo85 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.