Search Results

Search found 2508 results on 101 pages for 'ternary operator'.

Page 48/101 | < Previous Page | 44 45 46 47 48 49 50 51 52 53 54 55  | Next Page >

  • Using a class with const data members in a vector

    - by Max
    Given a class like this: class Foo { const int a; }; Is it possible to put that class in a vector? When I try, my compiler tells me it can't use the default assignment operator. I try to write my own, but googling around tells me that it's impossible to write an assignment operator for a class with const data members. One post I found said that "if you made [the data member] const that means you don't want assignment to happen in the first place." This makes sense. I've written a class with const data members, and I never intended on using assignment on it, but apparently I need assignment to put it in a vector. Is there a way around this that still preserves const-correctness?

    Read the article

  • Library for Dataflow in C

    - by msutherl
    How can I do dataflow (pipes and filters, stream processing, flow based) in C? And not with UNIX pipes. I recently came across stream.py. Streams are iterables with a pipelining mechanism to enable data-flow programming and easy parallelization. The idea is to take the output of a function that turns an iterable into another iterable and plug that as the input of another such function. While you can already do this using function composition, this package provides an elegant notation for it by overloading the operator. I would like to duplicate a simple version of this kind of functionality in C. I particularly like the overloading of the operator to avoid function composition mess. Wikipedia points to this hint from a Usenet post in 1990. Why C? Because I would like to be able to do this on microcontrollers and in C extensions for other high level languages (Max, Pd*, Python). * (ironic given that Max and Pd were written, in C, specifically for this purpose – I'm looking for something barebones)

    Read the article

  • Why are there two implementations of std::sort (with and without a comparator) rather than one implementation with a default template parameter?

    - by PolyVox
    In my code I'm adopting a design strategy which is similar to some standard library algorithms in that the exact behavior can be customized by a function object. The simplest example is std::sort, where a function object can control how the comparison is made between objects. I notice that the Visual C++ provides two implementations of std::sort, which naturally involves code duplication. I would have imagined that it was instead possible to have only one implementation, and provide a default comparator (using operator< ) as a default template parameter. What is the rational behind two separate versions? Would my suggestion make the interface more complex in some way? Or result in confusing error messages when the object does not provide operator Thanks, David

    Read the article

  • C++ return type overload hack

    - by aaa
    I was bored and came up with such hack (pseudocode): 1 struct proxy { 2 operator int(); // int function 3 operator double(); // double function 4 proxy(arguments); 5 arguments &arguments_; 6 }; 7 8 proxy function(arguments &args) { 9 return proxy(args); 10 } 11 int v = function(...); 12 double u = function(...); is it evil to use in real code?

    Read the article

  • C++ function object terminology functor, deltor, comparitor, etc..

    - by Robert S. Barnes
    Is there a commonly accepted terminology for various types for common functors? For instance I found myself naturally using comparitor for comparison functors like this: struct ciLessLibC : public std::binary_function<std::string, std::string, bool> { bool operator()(const std::string &lhs, const std::string &rhs) const { return strcasecmp(lhs.c_str(), rhs.c_str()) < 0 ? 1 : 0; } }; Or using the term deltor for something like this: struct DeleteAddrInfo { void operator()(const addr_map_t::value_type &pr) const { freeaddrinfo(pr.second); } }; If using these kinds of shorthand terms is common, it there some dictionary of them all someplace?

    Read the article

  • Fast comparison of char arrays?

    - by StackedCrooked
    I'm currently working in a codebase where IPv4 addresses are represented as pointers to u_int8. The equality operator is implemented like this: bool Ipv4Address::operator==(const u_int8 * inAddress) const { return (*(u_int32*) this->myBytes == *(u_int32*) inAddress); } This is probably the fasted solution, but it causes the GCC compiler warning: ipv4address.cpp:65: warning: dereferencing type-punned pointer will break strict-aliasing rules How can I rewrite the comparison correctly without breaking strict-aliasing rules and without losing performance points? I have considered using either memcmp or this macro: #define IS_EQUAL(a, b) \ (a[0] == b[0] && a[1] == b[1] && a[2] == b[2] && a[3] == b[3]) I'm thinking that the macro is the fastest solution. What do you recommend?

    Read the article

  • boost variant static_visitor problem picking correct function

    - by Steve
    I'm sure I'm having a problem with template resolution here, but I'm not sure why I'm having the problem. I have a static visitor I'm passing to boost variant where i've had to do template specialization for certain cases. The case for everything except for MyClass should throw in the static_visitor below. Unfortunately, when the visitor is applied to pull a MyClass out, it selects the most generic case rather than the exact match. I would type each case explicitly, but that will be rather long. So, why is the compiler resolving the most generic case over the exact match, and is there anyway to fix it template<> class CastVisitor<MyClass>:public boost::static_visitor<MyClass> { public: template<typename U> MyClass operator()(const U & i) const { throw std::exception("Unable to cast"); } MyClass operator()(const MyClass& i) { return i; } };

    Read the article

  • Copy Constructor in C++

    - by user265260
    i have this code #include <iostream> using namespace std; class Test{ public: int a; Test(int i=0):a(i){} ~Test(){ cout << a << endl; } Test(const Test &){ cout << "copy" << endl; } void operator=(const Test &){ cout << "=" << endl; } Test operator+(Test& p){ Test res(a+p.a); return res; } }; int main (int argc, char const *argv[]){ Test t1(10), t2(20); Test t3=t1+t2; return 0; } Output: 30 20 10 Why isnt the copy constructor called here?

    Read the article

  • Encrypt/ Decrypt text file in Delphi?

    - by Hemant Kothiyal
    Hi i would like to know best encryption technique for text file encryption and ecryption. My Scenario: I have software having two type of users Administartor and Operators. Our requirement is to encrypt text file when Administrator enter data using GUI and save it. That encrypted file would be input for Operator and they just need to select it and use that file. Here file should be automatically decrypt data for further calculation when Operator select those files. Please help me which encryption/ decryption technique should i use?

    Read the article

  • What is the difference between the * and the & operators in c programming?

    - by Wesley
    I am just making sure I understand this concept correctly. With the * operator, I make a new variable, which is allocated a place in memory. So as to not unnecessarily duplicate variables and their values, the & operator is used in passing values to methods and such and it actually points to the original instance of the variable, as opposed to making new copies...Is that right? It is obviously a shallow understanding, but I just want to make sure I am not getting them mixed up. Thanks!

    Read the article

  • C++ struct sorting error

    - by Betamoo
    I am trying to sort a vector of custom struct in C++ struct Book{ public:int H,W,V,i; }; with a simple functor class CompareHeight { public: int operator() (Book lhs,Book rhs) { return lhs.H-rhs.H; } }; when trying : vector<Book> books(X); ..... sort(books.begin(),books.end(), CompareHeight()); it gives me exception "invalid operator <" What is the meaning of this error? Thanks

    Read the article

  • Why does this simple bash code give a syntax error?

    - by Tim
    I have the following bash code, which is copied and pasted from "bash cookbook" (1st edition): #!/bin/bash VERBOSE=0; if [[ $1 =-v ]] then VERBOSE=1; shift; fi When I run this (bash 4.0.33), I get the following syntax error: ./test.sh: line 4: conditional binary operator expected ./test.sh: line 4: syntax error near `=-v' ./test.sh: line 4: `if [[ $1 =-v ]]' Is this as simple as a misprint in the bash cookbook, or is there a version incompatibility or something else here? What would the most obvious fix be? I've tried various combinations of changing the operator, but I'm not really familiar with bash scripting.

    Read the article

  • C++ enforce conditions on inherited classes

    - by user231536
    I would like to define an abstract base class X and enforce the following: a) every concrete class Y that inherits from X define a constructor Y(int x) b) it should be possible to test whether two Y objects are equal. For a, one not very good solution is to put a pure virtual fromInt method in X which concrete class will have to define. But I cannot enforce construction. For b), I cannot seem to use a pure virtual method in X bool operator == (const X& other) const =0; because in overridden classes this remains undefined. It is not enough to define bool operator == (const Y& other) const { //stuff} because the types don't match. How do I solve these problems?

    Read the article

  • Can I reproduce Scala's behavior for == ?

    - by JPP
    In Programming in Scala, I can read that the == operator behaves as if it was defined like this: final def == (that: Any): Boolean = if (null eq this) {null eq that} else {this equals that} But there must actually be compiler magic to avoid null pointer exceptions, right? Is there any way for me to replicate this behavior with pure Scala; i.e., have an operator/method return one thing if the receiver is null and another one if it isn't? What I mean is an actual implementation of null eq this. I suppose I can write a "pimp" and then define the method on the wrapper class, but is there a more direct way to do this?

    Read the article

  • How to replace the char '[' etc with '\[' using "sed" in a file ?

    - by Abhijeet
    I have a file say "file.txt" with following contents: Capsule arr**[**0**]** in state A rate_ul/dl=**(**2000000/7000000**)** Capsule RBx**[**0**]** in state ... ... using sed operator how can i replace all occurences of '[' with '[', '(' with '(', ']' with ']' and so on. Capsule arr**\[**0**\]** in state A rate_ul/dl=**\(**2000000/7000000**\)** Capsule RBx**\[**0**\]** in state ... ... Using the substitue operator in "gvim" I am able to achieve the same result. ie. if i use ":1,$ s/\[/\\[/g" in the vi editor in command mode I see all the '[' chars replaced with '['. However if I try to use the same substitue command in a shell script using a sed command, i am not able to achieve the same result. ie If i use the following command in a shell script I am not able to achieve the desired result: sed "s/\[/\\[/g" $temp_file2 > $temp_file1 where $temp_file2 conatins the lines with '[' characters and $temp_file1 should contain the replaced '\[' chars

    Read the article

  • doubt in - Function Objects - c++

    - by Eternal Learner
    I have a class class fobj{ public: fobj(int i):id(i) {} void operator()() { std::cout<<"Prints"<<std::endl; } private: int id; }; template<typename T> void func(T type) { type(); } My Doubt is if I invoke func like Method 1: func(fobj(1); the message I wanted to print is printed. I was always thinking I needed to do something like Method 2: fobj Iobj(1); // create an instance of the fobj class func(Iobj); //call func by passing Iobj(which is a function object) How does Method 1 work? I mean what exactly happens? and how is a call made to the operator() in class fobj ?

    Read the article

  • logical or expression c++

    - by user1870181
    I have a problem using the Logical OR operator in C++. The problem is coming that the right-side expression is not evaluated if the left-side is true. I have two deque-s and I need to popLeft from them with a while, but if I can pop from the first deque, I don't pop from the second because is not evaluated, by the OR operator. How can I overcome this problem. Here is the piece of code: while( D.popLeft( k ) || E.popLeft( m ) ) { if( k < m ) { C.pushRight( k ); E.pushLeft( m ); } else { C.pushRight( m ); D.pushLeft( k ); } }

    Read the article

  • Subtracting months/years from boost::posix_time::ptime

    - by Zack
    I have a boost::posix_time::ptime that points to March 31st 2010 like this: ptime p(date(2010, Mar, 31)); I would like to subtract a month (and possibly years) from this date. From the docs I see these two operators: ptime operator-(time_duration) and ptime operator-(days) but none of them can work with months/years. If I try and do: time_duration duration = hours(24 * 30); ptime pp = p - duration; I'm getting March 1st and if I'm trying: ptime pp = p - days(30); I'm still getting March 1st, while I'd like to get February 28th. How can I achieve my desired result? (I would like to get the desired result also when subtracting a month from March 28, 29, 30)

    Read the article

  • Returning objects with dynamic memory

    - by Caulibrot
    I'm having trouble figuring out a way to return an object (declared locally within the function) which has dynamic memory attached to it. The problem is the destructor, which runs and deletes the dynamic memory when the object goes out of scope, i.e. when I return it and want to use the data in the memory that has been deleted! I'm doing this for an overloaded addition operator. I'm trying to do something like: MyObj operator+( const MyObj& x, const MyObj& y ) { MyObj z; // code to add x and y and store in dynamic memory of z return z; } My destructor is simply: MyObj::~MyObj() { delete [] ptr; } Any suggestions would be much appreciated!

    Read the article

  • Using ANTLR with Left-Recursive Rules

    - by CNevin561
    Basically Ive written a Parse for a language with just basic arithmetic operators ( +, -, * / ) etc, but for the minus and plus cases, the Abstract Syntax Tree which is generated has parsed them as right associative when they need to be left associative. Having a googled for a solution, i found a tutorial that suggests rewriting the rule from: Expression ::= Expression <operator> Term | Term as Expression ::= Term <operator> Expression*. However in my head this seems to generate the tree the wrong way round. Any pointers on a way to resolve this issue?

    Read the article

  • Why System.String's beahaves like a value type?

    - by Sorush Rabiee
    I want to write a 'Date' class that behaves like a Value Type. for example, Instead of writing a Clone method for setting properties safely, make the Date class to pass by value: public Date Birthday { get { return this.birthday; } set { this.birthday = value.Clone(); } //I want to write this.birthday = value; //without changing external value when this.Birthday changes } I know this is possible because System.String is a class and behaves like a value. for example: String s1 = "Hello"; String s2 = "Hi"; s1 = s2; s2="Hello"; Console.WriteLine(s1); //Prints 'Hi' First I thought writers of this class override '=' operator, but now I know that the '=' operator can not be overridden. so how they write String class?

    Read the article

  • can't compile min_element in c++

    - by Vincenzo
    This is my code: #include <algorithm> #include <vector> #include <string> using namespace std; class A { struct CompareMe { bool operator() (const string*& s1, const string*& s2) const { return true; } }; void f() { CompareMe comp; vector<string*> v; min_element(v.begin(), v.end(), comp); } }; And this is the error: error: no match for call to ‘(A::CompareMe) (std::string*&, std::string*&)’ test.cpp:7: note: candidates are: bool A::CompareMe::operator()(const std::string*&, const std::string*&) const I feel that there is some syntax defect, but can't find out which one. Please, help!

    Read the article

  • Comparing Java enum members: == or equals() ?

    - by Bears will eat you
    I know that Java enums are compiled to classes with private constructors and a bunch of public static members. When comparing two members of a given enum, I've always used .equals(), e.g. public useEnums(SomeEnum a) { if(a.equals(SomeEnum.SOME_ENUM_VALUE)) { ... } ... } However, I just came across come code that uses the equals operator == instead: public useEnums2(SomeEnum a) { if(a == SomeEnum.SOME_ENUM_VALUE) { ... } ... } I've been programming in Java for 5+ years, and I thought I understood difference between the two - but I'm still scratching my head at which one is more correct. Which operator is the one I should be using?

    Read the article

  • VB.NET IF() Coalesce and “Expression Expected” Error

    - by Jeff Widmer
    I am trying to use the equivalent of the C# “??” operator in some VB.NET code that I am working in. This StackOverflow article for “Is there a VB.NET equivalent for C#'s ?? operator?” explains the VB.NET IF() statement syntax which is exactly what I am looking for... and I thought I was going to be done pretty quickly and could move on. But after implementing the IF() statement in my code I started to receive this error: Compiler Error Message: BC30201: Expression expected. And no matter how I tried using the “IF()” statement, whenever I tried to visit the aspx page that I was working on I received the same error. This other StackOverflow article Using VB.NET If vs. IIf in binding/rendering expression indicated that the VB.NET IF() operator was not available until VS2008 or .NET Framework 3.5.  So I checked the Web Application project properties but it was targeting the .NET Framework 3.5: So I was still not understanding what was going on, but then I noticed the version information in the detailed compiler output of the error page: This happened to be a C# project, but with an ASPX page with inline VB.NET code (yes, it is strange to have that but that is the project I am working on).  So even though the project file was targeting the .NET Framework 3.5, the ASPX page was being compiled using the .NET Framework 2.0.  But why?  Where does this get set?  How does ASP.NET know which version of the compiler to use for the inline code? For this I turned to the web.config.  Here is the system.codedom/compilers section that was in the web.config for this project: <system.codedom>     <compilers>         <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">             <providerOption name="CompilerVersion" value="v3.5" />             <providerOption name="WarnAsError" value="false" />         </compiler>     </compilers> </system.codedom> Keep in mind that this is a C# web application project file but my aspx file has inline VB.NET code.  The web.config does not have any information for how to compile for VB.NET so it defaults to .NET 2.0 (instead of 3.5 which is what I need). So the web.config needed to include the VB.NET compiler option.  Here it is with both the C# and VB.NET options (I copied the VB.NET config from a new VB.NET Web Application project file).     <system.codedom>         <compilers>             <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">                 <providerOption name="CompilerVersion" value="v3.5" />                 <providerOption name="WarnAsError" value="false" />             </compiler>       <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">         <providerOption name="CompilerVersion" value="v3.5"/>         <providerOption name="OptionInfer" value="true"/>         <providerOption name="WarnAsError" value="false"/>       </compiler>     </compilers>     </system.codedom>   So the inline VB.NET code on my aspx page was being compiled using the .NET Framework 2.0 when it really needed to be compiled with the .NET Framework 3.5 compiler in order to take advantage of the VB.NET IF() coalesce statement.  Without the VB.NET web.config compiler option, the default is to compile using the .NET Framework 2.0 and the VB.NET IF() coalesce statement does not exist (at least in the form that I want it in).  FYI, there is an older IF statement in VB.NET 2.0 compiler which is why it is giving me the unusual “Expression Expected” error message – see this article for when VB.NET got the new updated version. EDIT (2011-06-20): I had made a wrong assumption in the first version of this blog post.  After a little more research and investigation I was able to figure out that the issue was in the web.config and not with the IIS App Pool.  Thanks to the comment from James which forced me to look into this again.

    Read the article

< Previous Page | 44 45 46 47 48 49 50 51 52 53 54 55  | Next Page >