Downloaded and installed Visual Studio 2017 – Enterprise Edition. Started the download and went to lunch. When I got back the software was installed. I provided the license and the product was registered. The entire operation seemed to me to be much streamlined.
Today I decided to give VS 2017 a try. After the IDE was up and running I selected the LinkedLists project that I developed using VS 2013. The project was loaded and the following window popped up:
Apparently C++ is not part of the initial configuration / installation. I assume this is the case given that the language is not managed like C#.
I clicked on the <Install> button and waited for the operation to complete. I already had lunch so I had to wait. In order not to be staring at my monitors, I spent some time reading online articles. I would estimate that the operation took about 30 minutes.
After the installation / update completed I had to reboot my machine.
After logging back on, I started VS 2017 and opened the LinkedLists project. It came up. Performed some simple configurations and rebuilt the project. It ran without problems as indicated by the following console screen capture:
main <<< testing widgets ... main <<< widget: this: 0xee1dcfe4a8 id: 1234 name ==>widget_1234<== main <<< testing nodes ... main <<< node: this: 0xee1dcfe560 next: 0x0 prev: 0x0 main <<< widget: this: 0xee1dcfe568 id: 1234 name ==>widget_1234<== main <<< n this: 0x28f7660f280 next: 0x0 prev: 0x0 data: 1 main <<< crudeList this: 0x28f7660f280 next: 0x28f7660f280 prev: 0x28f7660f280 data: 1 main <<< n this: 0x28f7660f880 next: 0x0 prev: 0x0 data: 2 main <<< crudeList this: 0x28f7660f280 next: 0x28f7660f880 prev: 0x28f7660f880 data: 1 main <<< n this: 0x28f7660f400 next: 0x0 prev: 0x0 data: 3 main <<< crudeList this: 0x28f7660f280 next: 0x28f7660f880 prev: 0x28f7660f400 data: 1 main <<< n this: 0x28f7660f700 next: 0x0 prev: 0x0 data: 4 main <<< crudeList this: 0x28f7660f280 next: 0x28f7660f880 prev: 0x28f7660f700 data: 1 main <<< n this: 0x28f7660f8e0 next: 0x0 prev: 0x0 data: 5 main <<< crudeList this: 0x28f7660f280 next: 0x28f7660f880 prev: 0x28f7660f8e0 data: 1 main <<< p this: 0x28f7660f280 next: 0x28f7660f880 prev: 0x28f7660f8e0 data: 1 main <<< p this: 0x28f7660f880 next: 0x28f7660f400 prev: 0x28f7660f280 data: 2 main <<< p this: 0x28f7660f400 next: 0x28f7660f700 prev: 0x28f7660f880 data: 3 main <<< p this: 0x28f7660f700 next: 0x28f7660f8e0 prev: 0x28f7660f400 data: 4 main <<< p this: 0x28f7660f8e0 next: 0x28f7660f280 prev: 0x28f7660f700 data: 5 main <<< testing link list ... main <<< list: this: 0x28f766106c0 count: 0 maxCount: 13 head: 0x28f766106c0 tail: 0x28f766106c0 main <<< enqueue widget: this: 0xee1dcfe7b8 id: 1 name ==>widget_1<== main <<< enqueue widget: this: 0xee1dcfe7b8 id: 2 name ==>widget_2<== main <<< enqueue widget: this: 0xee1dcfe7b8 id: 3 name ==>widget_3<== main <<< enqueue widget: this: 0xee1dcfe7b8 id: 4 name ==>widget_4<== main <<< enqueue widget: this: 0xee1dcfe7b8 id: 5 name ==>widget_5<== main <<< list: this: 0x28f766106c0 count: 5 maxCount: 13 head: 0x28f76604590 tail: 0x28f766135e0 p: 0x28f76604590 data: this: 0x28f76604598 id: 1 name ==>widget_1<== next: 0x28f76611c70 p: 0x28f76611c70 data: this: 0x28f76611c78 id: 2 name ==>widget_2<== next: 0x28f7660d940 p: 0x28f7660d940 data: this: 0x28f7660d948 id: 3 name ==>widget_3<== next: 0x28f7660d9d0 p: 0x28f7660d9d0 data: this: 0x28f7660d9d8 id: 4 name ==>widget_4<== next: 0x28f766135e0 p: 0x28f766135e0 data: this: 0x28f766135e8 id: 5 name ==>widget_5<== next: 0x28f766106c0 main <<< dequeue widget: this: 0xee1dcfe8a0 id: 1 name ==>widget_1<== main <<< dequeue widget: this: 0xee1dcfe8a0 id: 2 name ==>widget_2<== main <<< dequeue widget: this: 0xee1dcfe8a0 id: 3 name ==>widget_3<== main <<< dequeue widget: this: 0xee1dcfe8a0 id: 4 name ==>widget_4<== main <<< dequeue widget: this: 0xee1dcfe8a0 id: 5 name ==>widget_5<== main <<< enqueue widget: this: 0xee1dcfe4a8 id: 1 name ==>widget_1<== main <<< enqueue widget: this: 0xee1dcfe4a8 id: 2 name ==>widget_2<== main <<< enqueue widget: this: 0xee1dcfe4a8 id: 3 name ==>widget_3<== main <<< head: this: 0xee1dcfe9d0 id: 1 name ==>widget_1<== main <<< tail: this: 0xee1dcfea30 id: 3 name ==>widget_3<== main <<< count: 3 j: 0 p: this: 0x28f76604590 next: 0x28f76611c70 prev: 0x0 main <<< insertAfter widget: this: 0xee1dcfeb68 id: 4 name ==>widget_4<== main <<< count: 4 j: 0 p: this: 0x28f76604590 next: 0x28f7660d9d0 prev: 0x0 main <<< insertAfter widget: this: 0xee1dcfeb68 id: 5 name ==>widget_5<== main <<< count: 5 j: 4 p: this: 0x28f7660d940 next: 0x28f766106c0 prev: 0x28f76611c70 main <<< insertAfter widget: this: 0xee1dcfeb68 id: 6 name ==>widget_6<== main <<< count: 6 j: 1 p: this: 0x28f766135e0 next: 0x28f7660d9d0 prev: 0x28f76604590 main <<< insertAfter widget: this: 0xee1dcfeb68 id: 7 name ==>widget_7<== main <<< count: 7 j: 5 p: this: 0x28f7660d940 next: 0x28f76613670 prev: 0x28f76611c70 main <<< insertAfter widget: this: 0xee1dcfeb68 id: 8 name ==>widget_8<== main <<< count: 8 j: 0 p: this: 0x28f76604590 next: 0x28f766135e0 prev: 0x0 main <<< insertAfter widget: this: 0xee1dcfeb68 id: 9 name ==>widget_9<== main <<< count: 9 j: 1 p: this: 0x28f76613e10 next: 0x28f766135e0 prev: 0x28f76604590 main <<< insertAfter widget: this: 0xee1dcfeb68 id: 10 name ==>widget_10<== main <<< count: 10 j: 3 p: this: 0x28f766135e0 next: 0x28f76613700 prev: 0x28f76614710 main <<< insertAfter widget: this: 0xee1dcfeb68 id: 11 name ==>widget_11<== main <<< count: 11 j: 8 p: this: 0x28f7660d940 next: 0x28f76613790 prev: 0x28f76611c70 main <<< insertAfter widget: this: 0xee1dcfeb68 id: 12 name ==>widget_12<== main <<< count: 12 j: 8 p: this: 0x28f7660d940 next: 0x28f76613a20 prev: 0x28f76611c70 main <<< insertAfter widget: this: 0xee1dcfeb68 id: 13 name ==>widget_13<== main <<< list->isFull i: 11 main <<< list: this: 0x28f766106c0 count: 13 maxCount: 13 head: 0x28f76604590 tail: 0x28f76613670 p: 0x28f76604590 data: this: 0x28f76604598 id: 1 name ==>widget_1<== next: 0x28f76613e10 p: 0x28f76613e10 data: this: 0x28f76613e18 id: 9 name ==>widget_9<== next: 0x28f76614710 p: 0x28f76614710 data: this: 0x28f76614718 id: 10 name ==>widget_10<== next: 0x28f766135e0 p: 0x28f766135e0 data: this: 0x28f766135e8 id: 5 name ==>widget_5<== next: 0x28f76613ea0 p: 0x28f76613ea0 data: this: 0x28f76613ea8 id: 11 name ==>widget_11<== next: 0x28f76613700 p: 0x28f76613700 data: this: 0x28f76613708 id: 7 name ==>widget_7<== next: 0x28f7660d9d0 p: 0x28f7660d9d0 data: this: 0x28f7660d9d8 id: 4 name ==>widget_4<== next: 0x28f76611c70 p: 0x28f76611c70 data: this: 0x28f76611c78 id: 2 name ==>widget_2<== next: 0x28f7660d940 p: 0x28f7660d940 data: this: 0x28f7660d948 id: 3 name ==>widget_3<== next: 0x28f76614170 p: 0x28f76614170 data: this: 0x28f76614178 id: 13 name ==>widget_13<== next: 0x28f76613a20 p: 0x28f76613a20 data: this: 0x28f76613a28 id: 12 name ==>widget_12<== next: 0x28f76613790 p: 0x28f76613790 data: this: 0x28f76613798 id: 8 name ==>widget_8<== next: 0x28f76613670 p: 0x28f76613670 data: this: 0x28f76613678 id: 6 name ==>widget_6<== next: 0x28f766106c0 main <<< pop widget: this: 0xee1dcfe4a8 id: 6 name ==>widget_6<== main <<< pop widget: this: 0xee1dcfe4a8 id: 8 name ==>widget_8<== main <<< pop widget: this: 0xee1dcfe4a8 id: 12 name ==>widget_12<== main <<< pop widget: this: 0xee1dcfe4a8 id: 13 name ==>widget_13<== main <<< pop widget: this: 0xee1dcfe4a8 id: 3 name ==>widget_3<== main <<< pop widget: this: 0xee1dcfe4a8 id: 2 name ==>widget_2<== main <<< pop widget: this: 0xee1dcfe4a8 id: 4 name ==>widget_4<== main <<< pop widget: this: 0xee1dcfe4a8 id: 7 name ==>widget_7<== main <<< pop widget: this: 0xee1dcfe4a8 id: 11 name ==>widget_11<== main <<< pop widget: this: 0xee1dcfe4a8 id: 5 name ==>widget_5<== main <<< pop widget: this: 0xee1dcfe4a8 id: 10 name ==>widget_10<== main <<< pop widget: this: 0xee1dcfe4a8 id: 9 name ==>widget_9<== main <<< pop widget: this: 0xee1dcfe4a8 id: 1 name ==>widget_1<== main <<< enqueue widget: this: 0xee1dcfe4a8 id: 1 name ==>widget_1<== main <<< insertBefore widget: this: 0xee1dcfedc8 id: 2 name ==>widget_2<== main <<< insertBefore widget: this: 0xee1dcfedc8 id: 3 name ==>widget_3<== main <<< insertBefore widget: this: 0xee1dcfedc8 id: 4 name ==>widget_4<== main <<< insertBefore widget: this: 0xee1dcfedc8 id: 5 name ==>widget_5<== main <<< insertBefore widget: this: 0xee1dcfedc8 id: 6 name ==>widget_6<== main <<< insertBefore widget: this: 0xee1dcfedc8 id: 7 name ==>widget_7<== main <<< insertBefore widget: this: 0xee1dcfedc8 id: 8 name ==>widget_8<== main <<< insertBefore widget: this: 0xee1dcfedc8 id: 9 name ==>widget_9<== main <<< insertBefore widget: this: 0xee1dcfedc8 id: 10 name ==>widget_10<== main <<< insertBefore widget: this: 0xee1dcfedc8 id: 11 name ==>widget_11<== main <<< list: this: 0x28f766106c0 count: 11 maxCount: 13 head: 0x28f76613d80 tail: 0x28f76614290 p: 0x28f76613d80 data: this: 0x28f76613d88 id: 6 name ==>widget_6<== next: 0x28f76613e10 p: 0x28f76613e10 data: this: 0x28f76613e18 id: 7 name ==>widget_7<== next: 0x28f76613ea0 p: 0x28f76613ea0 data: this: 0x28f76613ea8 id: 9 name ==>widget_9<== next: 0x28f76613cf0 p: 0x28f76613cf0 data: this: 0x28f76613cf8 id: 4 name ==>widget_4<== next: 0x28f76613bd0 p: 0x28f76613bd0 data: this: 0x28f76613bd8 id: 3 name ==>widget_3<== next: 0x28f76614200 p: 0x28f76614200 data: this: 0x28f76614208 id: 5 name ==>widget_5<== next: 0x28f76613990 p: 0x28f76613990 data: this: 0x28f76613998 id: 10 name ==>widget_10<== next: 0x28f76613fc0 p: 0x28f76613fc0 data: this: 0x28f76613fc8 id: 8 name ==>widget_8<== next: 0x28f76613f30 p: 0x28f76613f30 data: this: 0x28f76613f38 id: 2 name ==>widget_2<== next: 0x28f76614320 p: 0x28f76614320 data: this: 0x28f76614328 id: 11 name ==>widget_11<== next: 0x28f76614290 p: 0x28f76614290 data: this: 0x28f76614298 id: 1 name ==>widget_1<== next: 0x28f766106c0 main <<< push widget: this: 0xee1dcfe4a8 id: 1 name ==>widget_1<== main <<< push widget: this: 0xee1dcfe4a8 id: 2 name ==>widget_2<== main <<< push widget: this: 0xee1dcfe4a8 id: 3 name ==>widget_3<== main <<< push widget: this: 0xee1dcfe4a8 id: 4 name ==>widget_4<== main <<< push widget: this: 0xee1dcfe4a8 id: 5 name ==>widget_5<== main <<< push widget: this: 0xee1dcfe4a8 id: 6 name ==>widget_6<== main <<< push widget: this: 0xee1dcfe4a8 id: 7 name ==>widget_7<== main <<< push widget: this: 0xee1dcfe4a8 id: 8 name ==>widget_8<== main <<< list: this: 0x28f766106c0 count: 8 maxCount: 13 head: 0x28f76613ab0 tail: 0x28f766145f0 p: 0x28f76613ab0 data: this: 0x28f76613ab8 id: 1 name ==>widget_1<== next: 0x28f76613bd0 p: 0x28f76613bd0 data: this: 0x28f76613bd8 id: 2 name ==>widget_2<== next: 0x28f766144d0 p: 0x28f766144d0 data: this: 0x28f766144d8 id: 3 name ==>widget_3<== next: 0x28f76614560 p: 0x28f76614560 data: this: 0x28f76614568 id: 4 name ==>widget_4<== next: 0x28f76614440 p: 0x28f76614440 data: this: 0x28f76614448 id: 5 name ==>widget_5<== next: 0x28f76613fc0 p: 0x28f76613fc0 data: this: 0x28f76613fc8 id: 6 name ==>widget_6<== next: 0x28f76613990 p: 0x28f76613990 data: this: 0x28f76613998 id: 7 name ==>widget_7<== next: 0x28f766145f0 p: 0x28f766145f0 data: this: 0x28f766145f8 id: 8 name ==>widget_8<== next: 0x28f766106c0 main <<< pop widget: this: 0xee1dcff008 id: 8 name ==>widget_8<== main <<< pop widget: this: 0xee1dcff008 id: 7 name ==>widget_7<== main <<< pop widget: this: 0xee1dcff008 id: 6 name ==>widget_6<== main <<< pop widget: this: 0xee1dcff008 id: 5 name ==>widget_5<== main <<< pop widget: this: 0xee1dcff008 id: 4 name ==>widget_4<== main <<< pop widget: this: 0xee1dcff008 id: 3 name ==>widget_3<== main <<< pop widget: this: 0xee1dcff008 id: 2 name ==>widget_2<== main <<< pop widget: this: 0xee1dcff008 id: 1 name ==>widget_1<== main <<< count: 0
If you are interested in the source code, you will find it the Linked List – Part VI post.
If you have comments or questions regarding this or any other post in this blog, please do not hesitate and send me a message. Will reply as soon as possible and will not use your name unless you explicitly allow me to do so.
Regards;
John
john.canessa@gmail.com
Follow me on Twitter: @john_canessa