C++ :: Define A Templated Class While Implementing Default Value On Templated Arguments?

Oct 23, 2013

I would like to define a templated class while implementing default value on templated arguments. I don't know how to do that with string templated variables.

For exemple:

Code:
template <class T>
class A {
public:
A() { version = ???? }
std::string_base<T> version;
};

I don't want to pass the default value as parameter of the constructor. how I can do this?

View 6 Replies


ADVERTISEMENT

C++ :: Implementing Static Templated Method In Cpp File

Apr 16, 2012

I declared a member method to a class in its header file and implemented it in the cpp file. When I build and run the project in XCode, everything works fine. When I try to do it with a makefile, I get undefined symbols linker errors.

parser.h

Code:
#ifndef ENGINE_SCRIPT_PARSER_H
#define ENGINE_SCRIPT_PARSER_H
#include <string>
#include "variable.h"
namespace ninja_game_engine {

[Code] ....

The exact makefile looks like this:

Code:
test:
g++
Code/Engine/Modules/Timer/timer.cpp
Code/Engine/Modules/list.cpp

[Code] ....

I'm pretty sure that there is a weird namespace gotcha that I'm unaware of that LLVM (default OSX compiler) is compensating for that g++ isn't. Or maybe something weird with the optimization? I want the tests running at that level to make sure everything that is volatile is declared as such.

Rest of the code located here: [URL] ....

View 3 Replies View Related

C++ :: How To Compare Templated Class With Variadics

Oct 7, 2014

I've this variadic template class implementation:

// Predefine template delegate factory
template < typename R, typename... Args >
class brGenericDelegate ;
// C++11 template alias to announce functor definition
template < typename R, typename... Args >
using brGenericDelegateType = std::function< std::shared_ptr<R>(Args...) > ;

[code]....

This template works fine for me. Now I have to compare, if the functors of the generic templates are equals ore not. Actually I see no way to reach this aim, because I've to cast the brDelegate on each request.

View 4 Replies View Related

C++ :: Making Templated Class Of List?

Apr 19, 2014

I'm trying to make an templated class of List and trying to make a list of Students(another class) which I made. Its not working.

Code seems to work fine for pre-defined data types but it crashes when it comes to students. I also want to run sort function on list of students.

View 1 Replies View Related

C++ :: Determine If A Templated Class Has A Constructor

Mar 12, 2012

Can I determine if a templated class has a particular constructor, in my case using a string within function to which T is used?

Code:

template<class T>
void MakeObject(std::vector<T>& dataVector)
{
std::string str "con string,Joe,24";
// catch if T has string constructor
T someObject(str); // T someObject should have constructor from string
dataVector.push_back(someObject);
}

View 1 Replies View Related

C/C++ :: Template Specialization Of Single Method From Templated Class?

Jan 21, 2013

I want to specialize a particular function for Integer datatype inside a class template. My XX.h will be

namespace ZZ {
       template <class T>
       class XX {
           void doSomething(T x);
       };
}  

provide me XX.cpp which has template specialization for the function doSomething on Integer datatype.

I tried the following in XX.cpp

#include "XX.h"
using namespace ZZ;  
template <class T>
void XX<T>::doSomething(T x) {

[Code] ...

But this code is not working.

View 2 Replies View Related

C++ ::  Template Class Inheriting A Templated Class

Dec 9, 2014

I'm making a minimal spanning tree class that inherits a graph class, both are templated. This is my mstree.h so far:

#ifndef _MSTREE_H_
#define _MSTREE_H_
#include "graph.h"
namespace MSTreeNameSpace

[Code]...

and I keep getting these errors:

mst.h:9:25: error: expected template-name before ‘<’ token
class MST : public Graph<T>
^
mst.h:9:25: error: expected ‘{’ before ‘<’ token
mst.h:9:25: error: expected unqualified-id before ‘<’ token

View 3 Replies View Related

C++ :: Templated Class Function Does Not Have Class Type

Feb 3, 2013

I'm trying to template the return type for this function (component), I've looked around for example code but there doesn't seem to be any exactly like what I want.

Entity.hpp
class Entity {
public:
Entity();
unsigned int id = 0;
Component& addComponent(std::string);

[Code] ....

Error : 'ent1.component<HealthComponent>' does not have class type

View 2 Replies View Related

C/C++ :: How To Define Default Constructor For A Template List Class

Apr 18, 2012

I was making a template list class, and using it to make list of objects of my own class.It works fine with integers, but not with other classses.

template <typename T>
class CList {
public:
    struct Node {
        T data;
        Node* next;

[code]....

While in AddElement(), it gives error - Default constructor not available.

template<typename T>
bool CList<T>::AddElement(T t) {
    bool result = true;  
    if (head == NULL) {

[code]....

what is wrong here.

View 1 Replies View Related

C++ :: Set Member To Same Value In All Instances Of Templated Structure

Sep 3, 2013

template <typename T> struct avl_tree {
T data;
int balance;
struct avl_tree <T> *Link[2];
static int (*comp)(T, T);
};

In main, I have a function like so:
int compare(int a, int b) {
return ( a - b );
}

Now how do I assign the function pointer in my avl_tree class to the compare function?

I did this:
int (avl_tree<int>::*comp)(int, int) = compare;

But I got the compiler error:
Tree_Test.cc: In function ‘int main()’:
Tree_Test.cc:27:42: error: cannot convert ‘int (*)(int, int)’ to
‘int (avl_tree<int>::*)(int, int)’ in initialization

View 12 Replies View Related

C++ :: Unpacking Parameter Pack With Templated Predicate

Apr 20, 2014

I'm trying to generalize the following (working) code:

#include <iostream>
#include <string>
#include <cmath>
int foo (int num) {return num;}
int foo (double num) {return std::round (num);}
int foo (std::string str) {return str.length();}

[code]....

Template argument deduction failed, it says. And using pred_action<T> and pred_action<FIRST> only makes it worse.Do we need to use a visitor pattern or something like that?

View 2 Replies View Related

C++ :: Passing Object With Templated Static Array Into Another

Feb 3, 2014

This problem just seems really strange to me because it is simple yet for some reason my class cannot pass into another class. The class PASS_OBJECT has a static array (even with 1 element this doesn't work) and when I try to pass this class (after it is initialized) I seem to lose the data inside the PASS_OBJECT. Not only that but even when I declared the class OBJECT with the type of PASS_OBJECT<int> I seem to lose the integer 99. Here's the code, note that if you comment out line 89, 92 and 93 you will notice that line 90 outputs In main 2: 99 just fine but it doesn't otherwise???

#include <iostream>
const int size = 1;
template <class T>
class PASS_OBJECT;
template <class S>
class OBJECT {

[Code] ....

View 2 Replies View Related

C++ :: Templated Function Using Ofstream Strange Characters

Nov 5, 2014

To generate output data, I'm printing a bunch of vector contents to files. Because the type of variable can differ between vectors, I wrote a templated printing function to print out whatever the content of the vector is. It looks like this:

template <class T>
void SomeClass::PrintVector(std::vector<T>& Values, std::string& outFile) {
std::ofstream out(outFile, std::ios::app);

[Code] ....

I added the fixed because some larger values were being printed in scientific notation. Everything works well. My test code includes 3 vectors of doubles and 3 vectors of unsigneds. All the unsigneds work well and two of the doubles work well, but the third doubles vector prints nonsense unless I disable the fixed.

The calling code is the exact same. I know the values in the vector are correct, because a) if I comment out the "fixed" flag it works, and b) one of the unsigned vectors is sorted based on the values in that double vector (after it is printed, so the sort cannot corrupt the vector print) and works perfectly.

The "nonsense" looks like chinese/weird characters, if that matters.

View 11 Replies View Related

C++ :: Using Parametered / Templated Comparison Object For Priority Queue

Aug 19, 2013

On several occasions in my project, I need to sort elements (indeces) based on their linked values. Those values are stored in an array. This means the comparison looks like this:

bool operator()(int i, int j) { return someArray[i] > someArray[j]; }

Because this form returns often but someArray may differ, I wrapped this in a template class:

template<class T>
struct sorter {
std::vector<T>& data;
sorter(std::vector<T>& __d) : data(__d) {}
bool operator()(int i, int j) const { return data[i] > data[j]; }
};

Now, I want to use this in a different way: I want to select the K indeces with the lowest value from someArray attached to it. My idea was to build a priority_queue, push the first K elements and then compare all the next elements to PQ.top(), as such:

INDEX t(0);
for (; t < someLimit; ++t) {
pq.push(t);
if (pq.size() == K) break;
}
for (; t < someLimit; ++t) {
if (someArray[t] < someArray[pq.top()]) { pq.pop(); pq.push(t); }
}

My problem, however, is the definition / initialization of the priority_queue object. My first idea was simply std::priority_queue<INDEX> pq(sorter<VALUE>(someArray));, but calling any function on pq provides the error "expression must have class type" (?) when hovering over pq.

My second guess, std::priority_queue<INDEX, std::vector<INDEX>, sorter<VALUE>(someArray)> pq;, provides the error 'expected a ')'' when hovering over someArray.

What is the correct way to initialize this data structure?

View 1 Replies View Related

C++ :: How To Use Templated Varadic Sequences And Integral Sequence Wrappers

Jul 15, 2013

I've been studying the heck out of the boost metafunction libraries. I understand a good deal of what things like varadic functions and integral sequence wrappers are, but I am having a hard time putting everything together to get working functions, such as performing arithmetic operations or functions like that of std::vector.

Here is an example of what I'm talking about:

// Sequences
template<typename T... N> struct seq;
template<typename T, T... N> struct seq_c;

// Integral constant wrapper
template<int T> struct int_

[Code] .....

My knowledge of all of this is pretty scattered and I've really been trying hard to put it all together. Is this correct? How can I apply this and use it to do more?

View 5 Replies View Related

C++ :: Creating Custom Templated Doubly Linked List

Feb 20, 2013

I need to create a templated doubly linked list, with an iterator class within the list class. This program is to function just like the STL list class but I only need to implement functions that I am using, My trouble is I am kind of clueless on the iterator part and the fact that the list is templated is giving me syntax grief. I have pasted the code I have done so far.

1. On the syntax implementing the list and iterator functions outside of the class
2. I am not sure when to deference the iterator in the functions, but think I have it right so far
3. For the reverse function can I copy the list into a new list in reverse then re add them to the original list overwriting the same values? I have the code I have so far there
4. For the iterator erase function, I am not sure if I am deleting the node correctly.
5. I am not sure if I need template <typename T> above the iterator functions. Does the iterator class need to be a template? Right now it is not.

// Templated doubly linked list class

#include <iostream>
using namespace std;
template <typename T>
class list {
private:
Node *head;
Node *tail;

[Code] ....

View 7 Replies View Related

C/C++ :: Templated Data Structure - Error LNK2019 / Unresolved External Symbol

Mar 23, 2015

I am working on building a set of templated data structures for my own learning and have run in to an error when instantiating my templated linked list. I receive the following error:

error LNK2019: unresolved external symbol "public: __thiscall LinkedList<int>::~LinkedList<int>(void)" (??1?$LinkedList@H@@QAE@XZ) referenced in function _main

--LinkedList.h--
#ifndef LINKEDLIST_H
#define LINKEDLIST_H
template<class T>
class LinkedList {

[code]....

why I would be receiving this error?

View 1 Replies View Related

C :: How To Create Default Arguments

Oct 20, 2013

How to create default arguments in C? Is there any way to make default arguments ( i mean any alternative for them).

View 5 Replies View Related

C++ :: Default Arguments And Omitting Only Some Of Them?

Apr 7, 2014

I am trying to figure out what's the best way to accomplish something like this:

void function(t1 a=0,t2 b=0){/*...*/};
t2 value;
function(value);

That would throw a compile error, since the first argument that is being passed to the function (value) is considered the first argument in the declaration (a), which is of type t1. So, is there a way to force my function to consider value as the second argument instead of the first one? I am aware that this could be done using overloading, but the larger the amount of arguments, the larger amount of possibilities, so it might end up with a huge list of overloads. The best case scenario would be being able to set things like:

void function(t1 a=16,t1 b=0,t2 c=1){/*body*/};
function(b=3,a=0);
but I'm not aware of such feature in C++.

Would it be possible to design some sort of macro system to take care of this?

View 10 Replies View Related

C/C++ :: Implementing Container Class That Holds Point Class

Nov 28, 2014

I have a Point class that's already implemented. My goal is to implement a container class called Line that holds the Point class. I'm not allowed to use any existing container classes for this. Here's what I'm working with:

//File: Point.h
#ifndef POINT_H_
#define POINT_H_
class Point {
public:
Point(int x = 0, int y = 0);
Point(const Point & t);
virtual ~Point() {};

[Code] ....

How I'm supposed to write Line.cpp...how do I access/add Points to Line without using something like a vector? I probably should've included what I've written so far.

#include "Line.h"
/**
* Default Line constructor
*/
Line::Line() {

[Code] ....

View 6 Replies View Related

C++ :: Define A Class That Only Inherits From Parent Class And Takes One Argument

Jan 5, 2015

In the project I'm currently working on I define a class that only inherits from a parent class and takes one argument.

Does this class need to be defined in the header or source file? I read different answers around the internet.

Or is it better to always split definition and logica, even for something like an operator?

View 1 Replies View Related

C++ :: Implementing Stack Using Class Template?

Dec 5, 2013

The following program is designed to demonstrate class templates. The program will evaluate postfix expressions input to the console by pushing them in a stack, and then popping them and evaluating them as such, (ex. entering 3 4 + would equal 3+4 = 7).

The code is below. We are not to modify it, but to fill in the blanks, the places filled in indicated with two asterisks for a line, and one on each side for a part of a line. If I didn't know what to enter (if anything), I put three ?s. If you want to copy and compile for yourself, look for all the *s and ?s.

1) I'm turning up all sorts of errors in the main program file (prog5.cpp) having to do with stacktype.cpp. It has been removed from the program, as it is included at the end of stackType.h. Most of them are "cannot convert 'this' pointer from StackType to StackType<stack> &'. How do I fix that?

2) The program supposedly lacks a default constructor, and it keeps turning up that 's' is an array of unknown size (do I call StackType or stack or what?).

stackType.h Code: #pragma once// Catherine Stringfellow and Trey Brumley
// A Stack is a data type, which stores values in an order where values are added to the top of the stack when pushed,
// and when popped, remove and return the value from the top of the stack.
// Class specification for Stack ADT in file StackType.h
using namespace std;
static const int MAXITEMS = 50;

[code].....

View 11 Replies View Related

C++ :: Implementing Class To Simulate A Disk

Oct 1, 2013

So this code compiles without any problem but it is not producing the correct output. I know there's a problem in either my getBlock or putBlock functions but I can't see it.

Currently the output is "Should be 32 1s: "
"Should be 32 2s: "

There should be 32 1s and 32 2s and nothing is coming out.

#include <iostream>
#include <fstream>
using namespace std;
class Sdisk {
public :
Sdisk(string diskname);

[Code] .....

View 3 Replies View Related

C++ :: Implementing Signature Block Class

Sep 29, 2013

For class we are required to implement a signature block on all our assignments. To do this I've created a Signature Block class, but I'm having trouble implementing it. When I try to compile in Dev C++ I get this error:

[Error] request for member 'toString' in 'myblock', which is of non-class type 'SignatureBlock()'

Here is the code:

Assignment1.cpp

#include <iostream>
#include <string>
#include "SignatureBlock.h"
// Assignment 1: Requests user's name and says "Hello."
using namespace std;
int main(int argc, char** argv) {
string name;// string to store user's name
SignatureBlock myblock();// create a signature block object

[Code] ....

View 4 Replies View Related

C++ :: Template Class With Default Value?

Mar 22, 2013

refer to the code below, the attribute class is created with the value type and default value, but why it doesn't work for std::string?

#include <string>
#include <iostream>
using namespace std;

[Code].....

View 9 Replies View Related

C++ :: Define A Vector In A Class?

Aug 9, 2013

First this is my code:

#include <iostream>
#include <vector>
#include <cstdlib>

[Code].....

the blacked content got problems: the error messages are the throat_t::P or throat_t::T is inaccessible.

View 3 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved