Here is a short list of topics in no particular order you need to be comfortable with in order to be have an easier time learning SystemC:
[Note: Others might chime in with variations on this list (add/subtract), and this is not necessarily a complete list, but I am fairly certain if you are able to comfortably use the topics I list below, you will have very little trouble syntactically with learning SystemC. In addition to C++, it helps if you have some familiarity with event driven simulation (e.g. SystemVerilog or VHDL). Also, if you have deep knowledge in another OO language (e.g. Java or SystemVerilog), you might have an easier time learning the C++ part.]
Difference between declaration and definition
Pass by value vs pass by reference
Use of const (5 distinct cases)
Casting C++ style (4 types)
Implicit vs explicit conversions
Use of function overloading and how to deal with ambiguity issues
Use of std::string
Use of streaming I/O
How to declare, define and use classes
Definition of default constructor
Purpose and syntax of copy constructor
How to declare and use namespaces
Operator overloading as member functions and global functions.
The difference between overloading and overriding.
Relationship between class and struct
How to extend classes and multiple inheritance
Purpose of public and private
Storage types and lifetimes: static, automatic, dynamic
How to properly use new and delete
Use of pointers and understanding of issues with pointer arithmetic
Use of arrays and issues
Advantages and use of std::vector<>
Use of try-catch and throw
Use of initializer list in constructor and a proper understanding of the order of construction
Polymorphism and RTTI
Rule of 4 (6 if using C++11 or later)
How and where to define templates/generic programming (does not need to be deep knowledge - just the basics)
Use of templates and nested templates.
Definition of full and partial template specialization.
Different types of constructors and destructors
Use of virtual inheritance (hint: it's not polymorphism)
More STL including at least std::map<>, std::set<>
Modern C++ users (2011 onward) should know about:
Use of auto
Use of ranged for
Lambda definition, binding and use
Welcome to the Accellera Systems Initiative forums. Please register to start new topics or reply to existing topics.
We have resently migrated our UVM forums from UVMWorld to this site. If you were registered on the previous UVM forum site, you should be able to log into the forums using your username and password from the UVMWorld forums. If you had an account on both the UVMWorld forums and the Accellera forums and these accounts used the same email address, then log in with the username and password of the forums.accellera.org account, not your UVMWorld account. If you do not remember your password, you may reset it.
If you have any questions about using the forums, click the Help button at the bottom of any forum page.
If you need any help with your account and you are logged into the site, click the Messenger icon (a letter) in the upper right of your screen, click Compose New, enter “admin” in the Recipient’s Name field, compose your message, and then click Send. You may also send an email to firstname.lastname@example.org.