--- Log opened Thu Jul 30 00:00:16 2015 |
00:17 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code |
00:18 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
00:41 | | Meatyhandbag [sebastianfe@Nightstar-fit.ukq.53.184.IP] has joined #code |
01:32 | <&McMartin> | Holy crap, I got it working |
01:32 | <&McMartin> | Future me is gonna hate me *so much* |
01:32 | <&McMartin> | Maybe he'll blame Stroustrup. |
01:32 | <&McMartin> | He should. |
01:32 | <&McMartin> | But he's been known to overflow with wrath. |
01:33 | < catadroid> | heh |
01:33 | < catadroid> | Stroustrup's book on the history of the language is very good |
01:34 | | ion [Owner@Nightstar-ck1244.bchsia.telus.net] has joined #code |
01:35 | <&McMartin> | Yes |
01:35 | | * McMartin enjoyed it a great deal. |
01:35 | <&McMartin> | But yes, it turns out the last bit I had gotten wrong was that I could not actually say |
01:36 | <&McMartin> | template <typename T, typename U> inline Foo<T>::bar(U u) { ... } |
01:36 | <&McMartin> | No, I needed to say: |
01:36 | <&McMartin> | template <typename T> template <typename U> inline Foo<T>::bar(U u) { ... } |
01:36 | <&McMartin> | Er, and also have a void there after inline. |
01:37 | <&McMartin> | (The implementation of bar ended up needing to instantiate a subclass of Foo<U>) |
01:37 | < catadroid> | aha |
01:37 | < catadroid> | yeah, that makes sense |
01:37 | <&McMartin> | This means I can restructure that code I was complaining about earlier (my) today. |
01:38 | <&McMartin> | So that it will have two levels of indentation instead of sixteen. |
01:38 | < catadroid> | I remember :) |
01:38 | <&McMartin> | That will be nice! |
01:38 | < catadroid> | \o/ |
01:38 | <&McMartin> | \o/ indeed |
01:38 | <&McMartin> | This has been a pretty good week so far as work-related stuff has gone. |
01:38 | <&McMartin> | Sounds like you've been doing well too |
01:38 | <&McMartin> | Eldritch horror high five, etc |
01:39 | < catadroid> | actually I spent most of today being deliberately sidetracked so as to recharge |
01:39 | <&McMartin> | Ha |
01:39 | < catadroid> | which is something I recognise I need to do occasionally |
01:39 | < catadroid> | otherwise I burn out |
01:39 | <&McMartin> | Nod nod |
01:39 | <&McMartin> | Good times |
01:40 | | ion [Owner@Nightstar-ck1244.bchsia.telus.net] has quit [Ping timeout: 121 seconds] |
01:41 | < catadroid> | fortunately I'm one of the most pedantic if not the most pedantic at the company |
01:41 | < catadroid> | so there's always more tests to implement |
01:49 | | * McMartin nods |
01:49 | <&McMartin> | I'm going to need to do that pretty soon |
01:49 | <&McMartin> | Right now I've set up basically a mini-systemic test and some super-basic unit tests |
01:49 | < catadroid> | I wrote unit tests for move and forward today |
01:49 | <&McMartin> | This new function I got working will also make meatier tests between "unit" and "full systemic" be feasible, so that's good |
01:50 | < catadroid> | it felt good that not only can I use them, but that I understand how to test them too |
01:50 | <&McMartin> | I've got a good sense of std::move now but std::forward is still a bit abstract for me |
01:50 | <&McMartin> | I haven't had to use it "for real" yet |
01:51 | < catadroid> | I've used it to optimise some of the standard routines we have |
01:52 | | * McMartin nods |
01:52 | <&McMartin> | Yeah, I got the impression that's what it's for, but I haven't had to do that kind of stuff that is optimized thereby |
02:07 | | Meatyhandbag [sebastianfe@Nightstar-fit.ukq.53.184.IP] has quit [Ping timeout: 121 seconds] |
02:43 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
02:44 | | Syloq [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
02:48 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
02:48 | | mode/#code [+o himi] by ChanServ |
02:48 | | Syloq [Syloq@Nightstar-hco.fem.152.204.IP] has joined #code |
02:48 | | mode/#code [+o Syloq] by ChanServ |
03:05 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
03:57 | | Checkmate [Z@Nightstar-r9lk5l.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
04:18 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [Connection closed] |
04:51 | | Thalatwerk [thalass@Nightstar-m49.o7s.158.104.IP] has joined #code |
04:58 | | ion [Owner@Nightstar-h5r554.vs.shawcable.net] has joined #code |
04:59 | | Derakon is now known as Derakon[AFK] |
05:22 | | macdjord|wurk is now known as macdjord |
05:35 | | himi [fow035@Nightstar-8etbk2.optusnet.com.au] has joined #code |
05:35 | | mode/#code [+o himi] by ChanServ |
05:35 | | ion_ [Owner@Nightstar-h5r554.vs.shawcable.net] has joined #code |
05:37 | | ion [Owner@Nightstar-h5r554.vs.shawcable.net] has quit [Ping timeout: 121 seconds] |
05:41 | | Kindamoody|autojoin is now known as Kindamoody |
06:07 | | catadroid` [catalyst@Nightstar-v4big1.dab.02.net] has joined #code |
06:11 | | catadroid [catalyst@Nightstar-jsdu2v.dab.02.net] has quit [Ping timeout: 121 seconds] |
06:28 | | celticminstrel [celticminst@Nightstar-c0l57i.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
06:36 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed] |
06:41 | | Xires is now known as ^Xires |
06:49 | | ^Xires is now known as Xires |
06:58 | | catadroid` is now known as catadroid |
07:00 | | Thalatwerk is now known as thalass |
07:00 | | mode/#code [+o thalass] by ChanServ |
07:01 | | thalass is now known as Thalass|slep |
07:15 | | himi [fow035@Nightstar-8etbk2.optusnet.com.au] has quit [Ping timeout: 121 seconds] |
07:48 | | Reiv [NSwebIRC@Nightstar-q8avec.kinect.net.nz] has quit [Ping timeout: 121 seconds] |
07:52 | | catadroid [catalyst@Nightstar-v4big1.dab.02.net] has quit [[NS] Quit: Bye] |
08:34 | | macdjord is now known as macdjord|slep |
08:50 | | Kindamoody is now known as Kindamoody|afk |
10:10 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
10:10 | | mode/#code [+o himi] by ChanServ |
10:15 | | catadroid [catalyst@Nightstar-gvtais.dab.02.net] has joined #code |
11:10 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code |
11:10 | | VirusJTG_ [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code |
11:10 | | VirusJTG_ [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [Connection closed] |
11:10 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [Connection closed] |
11:12 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code |
11:43 | | Checkmate [Z@Nightstar-r9lk5l.cust.comxnet.dk] has joined #code |
11:43 | | mode/#code [+o Checkmate] by ChanServ |
11:50 | | catadroid [catalyst@Nightstar-gvtais.dab.02.net] has quit [The TLS connection was non-properly terminated.] |
11:51 | | catadroid [catalyst@Nightstar-gvtais.dab.02.net] has joined #code |
12:37 | | catadroid` [catalyst@Nightstar-nafmrq.dab.02.net] has joined #code |
12:40 | | catadroid [catalyst@Nightstar-gvtais.dab.02.net] has quit [Ping timeout: 121 seconds] |
13:34 | | catadroid` is now known as catadroid |
14:08 | | macdjord|slep is now known as macdjord|wurk |
14:25 | | Thalass|slep is now known as thalass |
15:00 | <@TheWatcher> | ... godsdamnit, I can't break this |
15:00 | <@TheWatcher> | I need to test what goes wrong if I break this, and I can't bloody do it |
15:02 | | * TheWatcher goes in and starts commenting out code |
15:03 | <@Tamber> | Clearly, you've done far too good a job. :p |
15:07 | | celticminstrel [celticminst@Nightstar-c0l57i.dsl.bell.ca] has joined #code |
15:07 | | mode/#code [+o celticminstrel] by ChanServ |
15:31 | <@TheWatcher> | It's validation and error handling for user input, where users include members of staff who do things like write down their university login details on pieces of paper stuck on their desks |
15:32 | <@Tamber> | Of course. |
15:34 | <@TheWatcher> | Next step is writing somethign that sends the final, correct, valid version of the content they enter back through time to correct the input after the first validation failure |
15:34 | <@TheWatcher> | Fuck you, temporal paradoxes. |
15:34 | <@Tamber> | I'm pretty sure there's a module on CPAN for that. |
15:37 | <@TheWatcher> | WEll, first it probably involves running everything through Acme::Phlegethoth... |
15:39 | <@Tamber> | I'm pretty sure it does that internally anyway. |
15:39 | <@Tamber> | Saves time, y'see. |
16:29 | | jeroud [sid10043@Nightstar-h2b233.irccloud.com] has quit [Connection closed] |
16:36 | | Checkmate [Z@Nightstar-r9lk5l.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
16:55 | | Attilla [sid13723@Nightstar-ed0oqj.irccloud.com] has quit [Connection closed] |
17:02 | | Meatyhandbag [sebastianfe@Nightstar-112.u04.53.184.IP] has joined #code |
17:06 | | Meatyhandbag [sebastianfe@Nightstar-112.u04.53.184.IP] has quit [Ping timeout: 121 seconds] |
17:10 | | jeroud [sid10043@Nightstar-h2b233.irccloud.com] has joined #code |
17:10 | | mode/#code [+ao jeroud jeroud] by ChanServ |
17:19 | | Attilla [sid13723@Nightstar-ed0oqj.irccloud.com] has joined #code |
17:37 | | gizmore [kvirc@Nightstar-18qenh.dip0.t-ipconnect.de] has joined #code |
18:59 | <@gnolam> | Nghgh |
18:59 | <@gnolam> | Would it have killed you to include specifications /for the actual returned data/ in the communications protocol spec? >:E |
19:08 | | catadroid` [catalyst@Nightstar-50elb0.dab.02.net] has joined #code |
19:11 | | catadroid [catalyst@Nightstar-nafmrq.dab.02.net] has quit [Ping timeout: 121 seconds] |
19:26 | <@gnolam> | (I can make a measurement and get the data back - I just have NFI which range it covers.) |
19:46 | <&ToxicFrog> | GO FORTH, MY ROBOT ARMY |
19:47 | | thalass [thalass@Nightstar-m49.o7s.158.104.IP] has quit [Ping timeout: 121 seconds] |
19:58 | | catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code |
20:09 | | Meatyhandbag [sebastianfe@Nightstar-112.u04.53.184.IP] has joined #code |
20:15 | | Meatyhandbag [sebastianfe@Nightstar-112.u04.53.184.IP] has quit [Ping timeout: 121 seconds] |
20:29 | | gizmore [kvirc@Nightstar-18qenh.dip0.t-ipconnect.de] has quit [[NS] Quit: KVIrc 4.3.1 Aria http://www.kvirc.net/] |
20:49 | | starkruzr [jtd@Nightstar-qbtq3s.fios.verizon.net] has quit [Ping timeout: 121 seconds] |
20:52 | | starkruzr [jtd@Nightstar-qbtq3s.fios.verizon.net] has joined #code |
21:24 | | catadroid` [catalyst@Nightstar-50elb0.dab.02.net] has quit [[NS] Quit: Bye] |
21:28 | | ion [Owner@Nightstar-h5r554.vs.shawcable.net] has joined #code |
21:31 | | ion_ [Owner@Nightstar-h5r554.vs.shawcable.net] has quit [Ping timeout: 121 seconds] |
21:46 | | Kindamoody|afk is now known as Kindamoody |
22:22 | | Derakon [chriswei@Nightstar-2fe4eq.ca.comcast.net] has joined #code |
22:22 | | mode/#code [+ao Derakon Derakon] by ChanServ |
22:22 | <&Derakon> | C++ syntax question. |
22:22 | <&Derakon> | I have a class DeviceBase which has a public typedef MM::Action<U> CPropertyAction |
22:23 | <&Derakon> | I want to access CPropertyAction from a class that is not related to DeviceBase. |
22:23 | <&Derakon> | It is public, so I assume this is possible, but I can't figure out the appropriate syntax. |
22:23 | <&Derakon> | Within the class I could just do "CPropertyAction* action = new CPropertyAction(...)", but outside I need to indicate the proper scope somehow. |
22:24 | <&Derakon> | Google is being surprisingly unhelpful. |
22:27 | <&Derakon> | ...bleh, Visual Studio's editor is tripe. |
22:31 | <&McMartin> | DeviceBase<U>::CPropertyAction |
22:31 | <&McMartin> | WIth "U" being any type if it doesn't matter, or the correct type if it does matter. |
22:31 | <&McMartin> | Consider, for example the typedef std::vector<int>::iterator |
22:32 | <&McMartin> | You can declare variables of that type |
22:33 | <&McMartin> | Visual Studio's code completion got suddenly vastly worse in the 2012 |
22:33 | <&McMartin> | edition |
22:33 | <&Derakon> | Ehh, I'm more missing the ability to quickly set and jump to locations in the file, and regex-based search-and-replace. |
22:33 | <&Derakon> | IOW I want to be using vim. |
22:34 | <&McMartin> | Vim is available for Windows |
22:34 | <&Derakon> | But task-switching is already super-unwieldy here (Remote Desktop onto a Windows box from my laptop). |
22:34 | <&McMartin> | If you want it, you can get it~ |
22:34 | <&Derakon> | Yes, I know, it'd be a separate process, per file, from Visual Studio which I need for compiling. |
22:34 | <&Derakon> | I'm just bitching, don't mind me. Thanks for the help on the types. |
22:34 | <&Derakon> | Ended up redoing how I'm compositing this behavior anyway, due to other type issues. |
22:34 | <&McMartin> | (Vimperator is also a good way to keep people from borrowing your browser~) |
22:35 | < ion> | I tried using vimperator, but I don't think it liked my archiac browser profile |
22:36 | < ion> | Don't remember what it did, just that things went funny and I had to uninstall it |
22:37 | <&McMartin> | As an Emacs sort I'm afraid I can't help |
22:37 | < ion> | I think it was more of a firefox problem in general |
22:37 | <&Derakon> | Okay, I've screwed up my virtual function somehow. |
22:38 | <&Derakon> | base class A has "virtual int TestTriggering();" in its class header. |
22:38 | < ion> | I've dragged my user profile with me since a FF2 install |
22:38 | <&Derakon> | Classes B and C both descend from A and have "int TestTriggering();" in their headers, with corresponding implementations. |
22:38 | <&McMartin> | That should infer the virtuality |
22:38 | <&Derakon> | When I try to compile I get an error because A::TestTriggering() is an unresolved external symbol. |
22:39 | <&McMartin> | Oh, does it not have an implementation? You want it fully abstract? |
22:39 | <&McMartin> | If so you must declare it as virtual int TestTriggering() = 0; |
22:39 | <&Derakon> | A does not have an implementation, no. |
22:39 | <&Derakon> | ...ah. |
22:39 | <&McMartin> | "virtual" in C++ means "overrides can actually happen, which means you need a vtable" |
22:39 | <&Derakon> | Yeah, that compiles. Thanks. |
22:39 | <&McMartin> | Nonvirtual methods in C++ are actually ordinary global functions with a funny calling syntax. |
22:39 | <&Derakon> | ...so wait, what happens if you have a non-virtual method and an inheriting class has a method with an identical signature? |
22:40 | <&McMartin> | Then the declared type of the variable you call it on completely determines the target. |
22:40 | <&McMartin> | This is almost never what you want, and this interacts with operator overloading in a complicated way that I don't have swapped in. |
22:40 | <&Derakon> | Fairynuff. |
22:41 | <&Derakon> | Thanks for the assist. |
22:41 | <&Derakon> | My brain's just too much in Java mode these days. |
22:41 | <&McMartin> | If *none* of your methods are virtual, however, then your structure size drops by one pointer amount and this is occasionally important for things like C FFI and space efficiency with gigantic arrays. |
22:41 | <&Derakon> | FFI...forward function initialization? |
22:41 | <&McMartin> | (Also you cannot be subject to teypeid or dynaimc_cast calls, because Efficiency) |
22:41 | <&McMartin> | ...oh right |
22:42 | <&McMartin> | If you are subclassing, *always declare your base destructor virtual* |
22:42 | <&McMartin> | Otherwise the jackassery described above will happen sometimes depending on how things leave scope |
22:42 | <&McMartin> | It's bad (tm) |
22:42 | <&Derakon> | Righto, done. |
22:42 | | Kindamoody is now known as Kindamoody[zZz] |
22:42 | <&Derakon> | Just "virtual ~A();"? |
22:42 | <&Derakon> | Or do I need the " = 0" bit? |
22:42 | <&McMartin> | Probably virtual ~A() {} if you don't otherwise have one |
22:42 | <&McMartin> | You can't not have a descrutor |
22:42 | <&McMartin> | destructor |
22:43 | <&Derakon> | This is stuff I used to know, I swear. |
22:43 | <&Derakon> | I wrote entire nontrivial programs in C++, once upon a time. |
22:43 | <&McMartin> | (The default destructor destroys all fields in reverse declaration order, then destroys its superclass instances) |
22:43 | <&McMartin> | THe langauge has changed unrecognizably at least three times since the last time you did~ |
22:43 | <&McMartin> | I'm in blankslate mode over here after working on a codebase for seven years, all C++, and I'm basically relearning the language as I go |
22:44 | <&Derakon> | Aside from having access to Boost, this mostly all looks like the C++ I used to work with. |
22:45 | <&Derakon> | I've just forgotten how it works. |
22:46 | <&Derakon> | ...oh, cute, I've screwed things up enough that I'm getting access violations on launch. \o/ |
--- Log closed Fri Jul 31 00:00:31 2015 |